It can be done! They argued at first, but then realized I was not asking for compensation for a missed port, but wanted our money back that we had already paid for an excursion (One of the only two we booked with NCL). They argued that their contract allowed them to cancel a port, and they were already giving compensation as OBC (BTW when I asked non-refundable as it was compensation). I argued how could it be compensation if I already paid it. Then the rep asked if I was asking for money for the missed port or for my already paid excursion. When she realized what I was actually asking for, she put me on hold and went to the resolutions department.
She came back, and said you can cancel excursions up to 48 hours before the excursion for a refund. So that is what they did. However, she told me it may take 7-10 business days. Amazing how quickly a charge goes from pending to charge and yet a refund can take up to 2 weeks.