The cost is not entirely known up-front
Let's compare against two other monetization models;
Players are all too happy to shell out $60 for a triple-A title that has decent reviews - because they understand the cost that it will incur to them. They feel like they can appropriately weigh the cost against the reviews (and their preferences) to decide if they want to invest their time in the game.
Players are also quite happy to buy into subscription-based services - most MMO's use this format, and are quite successful because of it. This subscription is not generally tied to your ingame actions, and you pay regardless of if you play. But, again, this is a well-understood cost to the player. There is no surprise here, they understand what they're getting.
But microtransactions are more uncertain. Players don't know if they'll end up spending $3 or $30 over the course of a week or month of gameplay. There's no upper limit to the amount they might need to spend in order to play the game the way they want.
It frequently reminds the players that they are losing real money
If you ask a player for a lump sum at the outset, or silently bill them every month, they forget about the money. But if you constantly harangue them to buy more skins or loot crates, they are viscerally aware that they are constantly spending money in the game. This is bad, because even if you only ask for a dollar or two at a time, doing so a dozen times feels like you're asking for more than if you just asked for $30 up-front.
Most mammals act like this; our reward centers are focused on getting rewards more often, not necessarily in larger amounts. Similarly, we feel costs more strongly if we incur them more often. A pet cat who is fed multiple times per day is much happier than if the exact same amount of food was given to them all at once.
The cost is usually not associated with things that actually incur development cost
Let's say you're playing a non-pay-to-win game, and you buy some hats or skins. The assumption is that because the game was free, but the skins cost money, that it must be costly to produce skins. But this is ludicrous, skins and hats are the easiest things in the game to produce! Players know this, and so when you demand $1 for a fancy hat, the cost is associated with the hat, and players feel a bit cheated because they know that the hat couldn't have taken more than a dozen or so man-hours to slap together, and it seems ludicrous to demand so much money for something like that.
TL;DR
Microtransactions are hated because they activate all of our uncertainties and biases about money.