The issue of port fees and whether or not they are refunded,, it’s much more complicated than it first appears.
To start with, port fees are somewhat nationality dependent. That is to say that a port might charge US citizens a certain amount, but British citizens a different amount. So you and your neighbor might have paid different port fees to start with.
Port fees go up and down. If at the moment you booked the port fee was, let’s say $10, and it goes up to $11, they don’t charge you extra. If it goes down to $9 dollars, they don’t give you the dollar back either.
So let’s say that on some given itineraries, you paid $10 for each port for you were scheduled to visit. But suddenly one Port decides to increase their fee to $30. The cruise line doesn’t adjust what you pay. But if one of the $10 ports get cancelled you will get no refund because the aggregate fee went up.
Because port fees go up and down, and vary by your nationality, someone else might have paid different fees initially and they might get a refund for a missed port while you don’t.