One issue is agencies can have vague contracts because customers did not have a good grasp of what they actually needed, start increasing scope in subtle ways. For example, you deliver a feature and during CAT they find a way to inject new requirements as if they were defects.
These agencies usually don’t have lawyers, so new contracts are full of exploitable holes. You say “we’ll build an e-commerce app with inventory management”, without specifying exactly what inventory management means, your client will start experimenting on your dime and can easily make it seem like it’s your fault. The larger the client, the worse this becomes.
You should always, always make your contracts as specific as possible, but this requires consulting work to nail down requirements before a contract is finalized, and that has a cost, but clients don’t value this and want you “the expert” to magically fill in the blanks in their ideas like an LLM, for free.
Another issue is your team. You might be very competent, but your team might not, hiring is hard. I once had to fire half of my team and build a 6 month client project in 1 month at great cost to my work / life balance because they were just unable to make meaningful progress. Granted, my leadership was not top notch there (being too busy to check on progress and trusting standups is a bad strategy) and I learned a lot, adjusted accordingly.
These are a few counter examples, but I still believe if this is a pattern then you’re a crook.