In 47 cruises on 11 cruise lines in different parts of the world, my wife tells me she can only remember one time (happened to be on a Carnival cruise) where the ship time was not changed to local time. (Her memory is better than mine!)
During our 12-night Baltic cruise, it seemed like they were changing the ship time almost every night - I think it was 4 different time zones going and 4 different time zones coming back.
But one thing is for sure, they ALWAYS announce whether to set your time back or ahead - often not only verbally announcing it through the speakers, but also in the daily newsletter. Plus, there is almost always a clock by the disembarkation point along with a sign telling everyone what time to be back on the ship.
Three things I always tell my clients: 1) Wear a watch (preferably water proof if you plan to go in the water) and check it regularly. Also, double check to make sure it's set to the ship time, which may or may not be the same as local time and do not rely on local people or clocks to keep track of time; 2) Take the daily newsletter with you when going into port. Not only does it include the times for everything, it also has the local contact information should something happen and you need to contact the ship; and 3) NEVER assume what you know or what other people tell you ahead of time will be true for your cruise. Things change all the time and what may have been one way before may be completely different now.