As others have noted, the refund is mandatory. This is based on how the cruise line does the faring of the voyage. Princess and most other cruise line make port fees a separate invoice line item and when this is done the fees must be returned - this also applies if a passenger cancels the voyage beyond all penalty periods.
Some cruise lines, eg Oceana the fees are built into the cruise fair as a single line item and for missed ports on their voyages they get away with doing no refund.