Because contractor satisfaction is important to them, as they're the ones that make them money at the end of the day? Of course this doesn't work for sweatshops, but when we're talking about big contracts and managing experienced devs, we're not so easily replaceable.
I have given them notice that I will end my engagement with them this summer, for example, and now they'll have to spend a couple months finding a replacement; if we had had a more sane arrangement, I might've stayed.
Of course being greedy and extracting maximum profit out of workers is a valid strategy, but I do not think that it is the only way to run a business.
In the current market, they may be able to find folks easier than they previously were.