Secretly, they would prefer better conditions; but they don't have any hope left.
This is nearer the truth. They're too hopeless, too irresponsible, too lazy, or too cowardly, and don't care enough about their own lives to take care of business and take action to improve their lives.
It's plausible that after a while working under bad conditions, they're also too tired.
This. It is really hard to think about taking action to improve your lot when you're overworked, exhausted, and just trying to get through the day so you can eat and sleep. The most crippling aspect of modern employment is that while in theory it only takes eight hours out of your day, it actually takes that plus the time you spend recurperating afterward -- the time you could conceivably spend looking for work that sucks less, or finding other options in general.
Here is an interesting blog post about a guy who did a resume experiment between two positions which he argues are by experience identical, but occupy different "social status" positions in tech: A software engineer and a data manager.
The author concludes that positions that are labeled as code-monkey-like are low status, while positions that are labeled as managerial are high status. Even if they are "essentially" doing the same sort of work.
Not sure about this methodology, but it's food for thought.