Mustaf Jumbe, head of Zanzibar’s main port of Stone Town, said search operations were launched late yesterday and were ongoing.
"So far, we have recovered three bodies and 27 people were rescued," he told AFP.
The MV Fatih had left Dar-es-Salaam on Friday afternoon and sank just before berthing at Stone Town around 9:00 pm (1800 GMT).
Its captain Usi Ali Usi told reporters on Saturday that he experienced problems with the ship’s rudder and then realised there was a big leak on the hull.
The total number of people on the boat could not be immediately established.
Zanzibar is Tanzania’s semi-autonomous island.