I think it is also a marketing trick. If people know that they will get a better deal the earlier they book, people will solidify their vacations earlier. More people will worry that they will not get to go on a specific date because others book early, so they will book early.
This also helps with filling the ship because people know they will most likely not find a last minute deal. If I had a ship this big, I would want to know as soon possible if I would be making ends meet. I wouldn't want to "hold my breath" until 3 months before to see if it fills up.
I can finally book my air flight for 6-06, and I don't know how early to book. Will I be able to book closer with a better deal? Will I be risking not getting on the non-stop 9 am flight? Should I just do it now, even though it is high? It could go higher!!!