Well, to quote TWO VP's of TWO highly respected banks with whom I spoke about exactly this:
Banks do not cash US Postal Service Money Orders anymore for 2 reasons. First, there are scads upon scads of fraudulent ones floating around and the banks have all been burned by them too many times. Second, they're afraid that if they take real ones, the USPS won't be able to pay them.
One of those bank VP's told me, "Tell everyone you know never to send Post Office money orders. Use a bank cashier's check or even take a personal check from someone before accepting a Post Office money order. You can cash a third party check easier than you can one of those money orders."
This was after I had taken it to the THIRD post office and tried about five banks just to make sure. Finally, I took it to a bank where I had worked as a teenager in the town where I grew up and where my mother still lives. That bank VP is one of my best school friend's mom and a friend of my mother's. And she cashed it for me while lecturing me on the subject in great detail.
So...believe or think what you will. Make excuses for the USPS all you want to. But the bottom line is that the old red-white-and-blue eagle that once stood for the full faith of credit of the US gov't and the ultimate in convenient, reliable service is now a far riskier way to transact business than by taking a stranger's personal check. FACT.