"Everybody in the court was shocked the moment he said he accepts his crime. It was unexpected,'' Ujjwal Nikam, the public prosecutor said.
Kasab had pleaded not guilty in May to 86 charges against him, including murder and waging war against India.
Harish Salve, a senior supreme court lawyer, said it was not clear if Kasab confessed voluntarily.
"I am sorry to play the party spoiler. But I hope he doesn't come the day after and give it another twist,'' Salve said.
Narration of events
In his statement, Kasab gave details of his group's journey from Pakistan on a boat, their subsequent landing in Mumbai, and the rampage that followed as the gunmen shot and killed people at a railway station, a Jewish centre and two five-star hotels, including the Taj Mahal.
Preeti Gupta, a journalist in Mumbai, told Al Jazeera that Kasab said it was an Indian who gave them the maps [to travel from Pakistan].
"He said it was an Indian who helped them to navigate the entire area to reach Mumbai.
"It was previously said there were no Indians involved in the entire conspiracy," she said.
India says Pakistani security agencies nurtured armed groups like Lashkar-e-Taiba, which India blames for the attacks.
Islamabad denies state involvement and has vowed to catch the guilty. It has detained several leaders with links to Lashkar.
"Pakistan's federal agency has stated that they accept that Kasab is Pakistani and have passed on a dossier to India," Gupta said.
"Initially Pakistan was not accepting that he was a Pakistani.
"[Now] Kasab knows he’ll be tried here [in India] and he'll be sentenced here, and that is the reason he had the change of heart".
The attacks were carried out by 10 armed men who targeted India's financial capital on November 26.
The rampage ended three days later when troops stormed the Taj Mahal Hotel where some of the men were hiding.
While most of the attackers were killed after a prolonged gunfight with security forces, Kasab was captured alive.
He was treated for wounds and has since been held in solitary confinement in Mumbai's Arthur Road Jail.