I drive a diesel 2016 VW Passat. A very "average" car by UK standards. My car does not qualify for the ULEZ and I'd have to pay the toll. I don't drive a giant gas guzzling truck. Not do I drive a 20 year old banger. I drive a "responsible" family sedan. Yet this is not enough to escape the toll.
When I bought that car, diesel cars were heavily favoured as the more environmentally friendly option by the government. People were encouraged to buy them, there were subsidies and various incentives to buy a car like mine. Then Dieselgate hit and everyone went running away from diesel.
Now consider that the government is extending the ULEZ to cover a huge area including millions of people. Those people are all being told "cough up £12.50 EVERY DAY or buy a BRAND NEW, expensive car". Well, not everyone has 20 grand to drop on a new electric, so they're just shit out of luck. 12.50 is an hour of their salary post taxes. That's an HOUR every day that poor people need to work extra, just for the privilege of getting to and from work.
How angry would you be if you were forced to work an extra hour a day just for the privilege of getting in and out of your own neighbourhood?
Also, regarding your take on public transport; public transport is great in central London. If you go to any of the neighbouring towns, where the ULEZ is being extended to, it's a different story. Train lines only go one direction: towards London. If you're going from town A to town B and public transport is your only option, you may find yourself needing to go into London and then back out again. That takes a long time and is very expensive. People need cars to get places in those towns. Also, as someone who recently became a parent; public transport and infants do not mix well.
In short; it's a tax on the poor (doubly so for people with small children), with a side order of revisionist history punishing those made responsible purchasing choices 5 years ago.