This is just a wild guess, but maybe getResources and pdoResources handle date fields differently, with one returning a human-readable date and the other a timestamp.
That wouldn’t explain why I got it to work with both getResources and pdoResources. That remains a mystery.
I think i have found the reason in the docks https://docs.modx.pro/en/components/pdotools/quick-start
It works directly with database tables. This makes it faster. You don’t have to convert resources dates to timestamps before you can pass pass them to “date” output filter.
Thanks for all your help.