I can understand how passengers expecting to be on a cruise to Bermuda would be upset to find that the ship they booked is, instead, going to Canada. However, it is a fact of cruising that all itineraries are subject to change, ports are not guaranteed and that you are paying for a specific number of days on a functional ship and no more.
You did not pay for a cruise to Bermuda. You paid for a cruise on the Voyager and that's what you received. This simple fact is made abundantly clear in all cruise contracts. Cruisers--especially those smart enough to be reading this message board--should know that.
If you wanted a vacation to Bermuda, especially during hurricane season, you should have booked a land vacation. What you did was book time on a ship whose intended destination was Bermuda. You should always be aware, however, that the destination is subject to change at the discretion of the cruise line and that no refunds will be issued.