There are no hard and fast rules. Generally on cruises out of the US the ship we will stay on home port time, but it is at the Captain's discretion.
With some countries not recognizing Daylight Savings Time, it makes things more complicated. If we had changed ship time on my current Glory cruise, we would have moved one hour ahead (New Orleans to Costa Maya), one hour back (Belize), one hour ahead (Cozumel), then one hour back (New Orleans). It's just not worth the hassle and confusion of all those one hour time changes.