An official from the country's Maritime Transport Institute (INTRASMAR) said the vessel carrying 130 passengers was an overloaded fishing boat and was not licensed to transport people.
It was ferrying people from Lunga in Nampula province to Mozambique Island on Sunday, Lourenco Machado, an administrator of INTRASMAR, said on state television on Monday, adding that initial reports indicated that it was hit by a tidal wave.
The passengers were reportedly fleeing a cholera outbreak, the Office of the Secretary of State for Nampula province said in a statement, adding that 10 people had been rescued and nearly 20 others were still missing.
Maritime authorities continued to search for additional survivors, administrator Silvério Nauaito told state-run Radio Mozambique, adding that "it is not easy to say with precision how many remain missing."
Nyusi said he was saddened by the tragedy and directed the southern African nation's transport minister to visit the island for investigation.
"The Mozambican government will meet tomorrow to assess the situation and take necessary measures to minimise the impact of this incident," his office said.
Videos obtained by Reuters showed many bodies lying on a beach and some people carrying the bodies of children.
Mozambique and other countries in Southern Africa have been battling cholera outbreaks since last year.
Mozambican government data showed the country has recorded 15,051 cases of cholera since October, resulting in 32 deaths. As of Sunday, Nampula province had recorded 5084 cases and 12 deaths.
Many areas of Mozambique are only accessible by boats, which are often overcrowded. The country has a poor road network and some areas are unreachable by land or air.
with AP