My wife and I take a cruise every year or two, so we read this MileCards blog post with interest.
http://milecards.com/1588427774/credit-card-cruise-insurance-benefit/
The post describes automatic trip coverage from various credit cards, as well as separate cruise insurance that is available.
Some common reasons why you might need to cancel a prepaid cruise are described and analyzed, including “you lose your job” and “you get ill before / during the cruise” and “your flight arrives late.”