Fares change constantly with hotels, airlines, car rentals, etc. Why should cruises be any different? People book far in advance to get a ship/sailing/cabin they want. Same with airfares. If the price goes down the airline doesn't give a credit or OBC. Why should cruiselines?
As far as not booking a cruise (one month out) if you don't get the one specific cabin you are looking for.. well, I'm thinking that's going to work out too well. (PS, MSC often changes cabins, which is at their discretion...)