I have just returned from a Celebrity cruise around the med and we stayed overnight in Venice. We also, whilst in one port did not sale untill 23.00 hours. I have also been on a Princess Med cruise 3 4 years ago and they did the same too.
Try taking a look at MSC. They stay all day in most places and stayed in Palma until 2pm on the cruise I did with them. They have a few more itineraries now they have more ships, so you may have a bit more choice.
We have always looked on the time ashore as a sample of the place and whether based on this we might like to go back and visit on a 7/10/14 hotel based holiday. The brouchers you get apart from ports of call should list arrival / departure times if not look at the cruise website or ask your travel agent. The time never sometimes never seems enough but there are some ports of call when 4 hours would be to long. A controlling factor to is the distance apart between the ports and this will effect whether you leave at 5 p.m. or 8 p.m. or even nearer to midnight.