Several reasons. The distance from Florida to San Juan means they can't get there early in a day without skipping an earlier port. San Juan's port authority dictates when ships can arrive and how long they can stay. Distance to the next port can also be a factor on needing to leave at X time. Perhaps the biggest reason? If you want to see San Juan that bad Carnival wants you to start your cruise there instead of it being a stop along the way.