When you book with a respectable OTA, it is basically like purchasing comfort insurance, but you pay nothing for it. You are being backed by their brand and your problems become theirs to solve. OTA's sometimes offer perks to people who book through them like free or discounted transportation and comped room upgrades.
Also, it is often in the contract between the hotel and the OTA that the hotel will always advertise the lowest rate available through that OTA. If the hotel works with several OTA's, then the hotel must offer the same room rate to each one that they have this arrangement with. They sometimes offer the same rate on their own, too. If you contact the hotel and ask for a room directly, and they offer you a lower rate, there is a chance that they are in breach of contract.
So the customer should definitely be getting value from their decision to book through an OTA.
For hotels, they usually have contracts with several OTA's. To let them know which rooms to sell, a hotelier will periodically update the availability and rates using a CRS that distributes the information to several OTA's, simplifying the process. But there are some really nasty CRS's out there, built in the 70s on mainframes that have not changed much since. They can be complicated to work with, and discourage smaller properties from putting in the effort. It sounds like the writer likely had a problem updating availability information through the CRS that expedia uses, leading to them not showing any availability.