Very likely they do. Certainly staying overnight would incur a huge port fee. They are allowed to port for so many hours per port charge. That is why they insist on leaving "on time" and not waiting or people to return. If they go past the time they are supposed to be out of port they incur more charges.
Another probability is the distance to the ports in your itinerary. The have to travel further which means they may not be able to time arriving in port to allow longer visits than they have. Although I agree with you in that I would gladly give up Mo Bay for more time in the other ports.
Carnival Cruise Lines:
Fantasy 90, Celebration 95, Victory 05, Conquest 05, Spirit 6/06, Freedom 6/08, Holiday 7/08, Victory 6/09, Valor 9/09, Dream 6/10, Splendor 8/10,Conquest 8/11,Magic 11/11,Triumph 4/12,Spirit 7/12,Freedom 11/12, Triumph 2/13 - The fire cruise
NCL Dream October 2006, RCCL Mariner OTS June 2007