Cruise lines have their rules, if you don't like them, choose another cruise line. If you don't want to dress for dinner, go to the buffet, or go on Norwegian or one of the more casual cruise lines. I don't know why people have such a hard time understanding that. If you were at a five star resort or even just a fancy restaurant, you don't wear your shorts & tee shirts! Nothing is different about a cruise. Except you are on it for a 3-7 days (most cruisers who gripe about attire seem to go on the shorter cruises I have observed...) instead of 2-3 hrs in the case of a restaurant. FOLLOW THE RULES!
That said, maybe if the cruise lines enforced their rules more strictly, we wouldn't be having this argument.