As always, it's all about the money.
The vast majority of passengers want the most bang for their buck.
Most people cannot afford many cruises. When they do get onboard, they want to see as many places as possible.
Cruises that stop in more ports are more popular than cruises that stop in only a few ports.
More popular cruises are easier to fill to 100% or more.
Full ships means higher profits.
Cruise ships do not make any money selling cruise tickets.
All the profit is from onboard spending.
When a ship is in port, the big money makers - Casino and Shops must be closed.
The other money-makers, Bars and Spa - are empty, because the passengers a spending their money ashore.
In most ports, the ship still has engines running to produce electricity. The difference in fuel consumption between slow cruising and sitting at the pier is minimal.
Ships must pay port charges. The charges are based on how long the ship stays at the pier. The longer the ship stays, the higher the charges.
Ships must spend quite a bit of time at sea to produce inexpensive fresh water, and dump treated grey and black water. If they stay in port more than about 18 hours, they must purchase expensive fresh water from the port, and pay waste handling companies big money to haul away grey and black water.
The longer you stay in port, the faster you need to go to get to the next port in a reasonable time. Ship's engines are notoriously inefficient on fuel consumption at high speeds. Fuel is VERY expensive these days.