There's a lot of moving parts here:
1. Competition is much lower in a lot of places.
2. Customers prioritize convenience and (perceived at least) low-prices over being treated well.
Look at airlines: Unless you happen to be traveling between two major airports, there will typically be at most 2 airlines with a reasonable schedule for the two endpoints, and most people will not pay $100 more for being treated like human beings over cattle.