That's why it (sometimes) pays to wait and book at the last minute. If you can do this it is something I would recommend. The problem comes in when you have to book air fare. Those prices go up the closer it gets to your flight day.
What I've heard the cruiselines are now doing is "creating" a new category for late bookings and discounts. In other words, you booked a category "B" for instance and paid $900 for it 10 months ago. It is now 1 month away from sailing and the cabins next to yours are not filled so they "create" category "B1" and discount these rooms to $600 to try to fill them before sailing. When you try to get a refund they say you can't because the discount only applies to category "B1" even though it is the same cabin as you have. This way they don't have to refund money to the hundreds of people already booked in category "B".
It is a deceptive practice. But with the soft market and overabundance of cabins I'd recommend getting your airfare early and booking the cruise late. If you do get shut out of your cruise you'll know a month in advance and the penalty for cancelling air fare is much less than cancelling a cruise.