If it isn't the cruise line's fault then they have no reason to provide compensation. Coco Cay gets cancelled for other reasons too. At least a couple times a year the waters around the Berry Islands (Coco Cay is one of them) have large swells which makes tendering too dangerous. I've been at Coco Cay when heavy rain plagued us off and on all day. It happens. The only thing they are required to refund is the port fees for missed ports. Per the cruise contract, they don't have to stop anywhere if their are valid reasons for it.
But to the larger question here - the gulf stream is largely west of The Bahamas which means any oil that made it that far would likely be swept north with the main current and not be a problem at Coco Cay or Nassau.