It’s a combination of many things but a large part of it is that while the ship is in port, some CM’s have that time off and leave the ship. Others must then cover those areas. We asked our server on our last cruise and he said as much- that when the ship is in port he is assigned to cover other areas or participate in crew safety drills.
Yes, they make more $$ having Palo open because it’s an upcharge but when a family by the pool wants lunch and it’s closed because there aren’t CM’s to man it, DCL stands to lose money there as well when that family doesn’t book another cruise. There aren’t a lot of extra people on a ship and frequently servers from any main dining room can be found doing other things when they aren’t in the dining room. We frequently had our server from dinner flipping our eggs at breakfast the next day (so when they get a day off to leave the ship, it’s well deserved).