Because they're always made really really poorly or are entirely made to milk, which in turn just ruins the game experience as a whole. F2P gaming isn't bad inherently:
Having all the game-play aspects and a reasonable amount of character customization available for free with the more advanced customization, stat rerolls, name changes, and other cosmetic / non-gameplay items available in the cash shop to support the game is fine and dandy.
Now when all those cosmetic items are behind a $1.50 gachapon that is chalk full of filler BS(useful but not $1.50 useful) it's really stupid.
Spending $15 on an outfit so that I look unique and that the game is supported and will continue to see updates: Fine, the ideal F2P set up.
Spending $15 on 10 Gachapon spins that, if I'm lucky, one of which will contain an outfit. Not even the one I may want, just an outfit. Could be the outfit likely no one will trade me for: I'm supporting the game but generally feel screwed and otherwise dissatisfied with the experience as a whole.