Costa Fortuna departed from Singapore, where it is home-ported, on March 3.
Italian cruise line Costa Crociere said there were no suspected virus cases among its guests, which includes Italians. Italy has the largest number of cases of the virus outside China with 7,375 infections.
The operator said the ship was not allowed to enter Penang port in Malaysia due to restrictions on Italian travellers and it was not allowed to stop in Thailand due to unspecified travel restrictions.
"The decision was deemed necessary on the basis of the restrictive measures currently applied by ports included in the ship’s itinerary," said Eunice Lee, a spokeswoman for the cruise line.
However, the ship, which can carry up to 3,470 guests and 1,027 crew, did make a first stop in Langkawi, Malaysia last week, local media reported. Costa Crociere did not say how many people were onboard the ship.
Another cruise due to depart from Singapore on March 10 would be cancelled, said the firm.
All passengers entering Singapore would have to undergo temperature screening, while some may have to do a swab test for the virus, the Maritime and Port Authority of Singapore and Singapore Tourism Board said in a joint statement.
Singapore's cruise terminals remain open to scheduled cruise calls out of Singapore. Unscheduled calls have not been allowed since Feb. 24, the authorities said.
In recent weeks, journeys on other cruise ships have also been disrupted due to worries over the spread of the virus.
MS Westerdam, operated by Carnival Corp's Holland America Line, was allowed to dock in Cambodia's Sihanoukville in mid-February having been turned away at five other ports after it set sail from Hong Kong on Feb. 1.
Diamond Princess, another cruise ship owned by Carnival, had been quarantined off the coast of Japan in February and was for a time the largest concentration of coronavirus cases outside China.