I'm not taking the cruise lines sides here but put yourself in their place--take Johnny Rockets--started out free and as a good thing. then kids took it over, spending hours at a time in there, wasting food, having food fights, etc, to the point where folks couldn't even get in to get a seat. Result-- charges to discourage the kids from hanging out and wasting so much food.
Room service-- used to be free 24 hours a day. Now they do have a very minimal charge for room service from around 1 a.m. through 5 a.m. Reason-- kids ordering all manner of food at all hours, wasting it and drunks coming in, ordering food, plopping down on the bed, passing out and 20-30 minutes later the room service waiter totes a tray of food for half a mile and can't get anyone to the door without waking half the ship--result--the food goes back and the prep time, the waiters time and sometimes the food itself is wasted.
I can't blame the cruise lines for this. At least the charges are passed on to the ones who use and abuse the system rather than just an across the board raise in fare to compensate for it.
Re / the specialty eateries, if one wants to eat there, fine. They know the charges up front--not like they're being tricked into it, but a lot of folks as soon as they set foot aboard start making reservations for these specialty eateries. There's food aplenty without paying extra and if any one goes on
cruise and comes away hungry, there is something wrong with them, not the cruise lines ! It's all a matter of being in control of your own spending.
If there's a charge for something and people buy it and it's successful, then why say it's the cruise lines fault? They only sell what people will buy.
But most of the " nickel and dime " complaints I see are for for silly things like ice cream, soda, etc. but rarely see where anyone drops $300-$400 dollars in the spa and complains nor do I see where folks complain about spending hundreds in the casino --but for $3.00 for room service at 2 a.m. or a buck.25 for a coke is terrible !! Just my opinion which means nothing to anyone but me.