There simply isn't enough backbone capacity for everyone to use all potential bandwidth all the time. But besides just not having enough raw capacity, the closer you get to reaching capacity, the more knock-on effects from buffer overruns and collisions and retries and latency and all sorts of shit start to cause connections to slow further. In order to keep speeds faster near capacity, you are forced to use traffic shaping to artificially squeeze capacity in order to make it not seem dog-slow, and falling into an unusable tailspin.
The caps are there to keep people within practical, usable limits, to prevent knock-on effects on edges of the network more vulnerable to bandwidth problems. To reduce that possibility they'd have to invest more money in unprofitable sections of infrastructure. Charging you more for bandwidth is effectively a way for them to not invest, because if they did invest, they would subsequently charge you more money to cover it. The caps basically artificially lower your own bill by getting you to choose to use less data. It's the choice of "do we piss them off with higher prices or worse service?"
Do they want to charge you more? Of course. Do they know most people won't use more than 1TB of data per month? Of course; they have trending usage metrics, they do a calculation, and this is what works to balance what people want with what they need, and how the provider can afford to pay for maintaining it all.
If they weren't absolutely enormous multi-headed-hydra conglomerates, service would be cheaper, better quality, and faster. But they're enormous, and as such they are inefficient, and as such, very expensive for what you get. If you want better service, lobby your local government to make municipal internet legal, because local private providers will never be able to compete.