Duterte also vowed that US-backed air strikes on Marawi would continue, as the conflict entered its fifth week with no sign of an end and its reported death toll climbed towards 370.
"I am very, very, very sorry that this happened to us. I hope that soon you will find it in your heart to forgive my soldiers and government and even me," Duterte said in a speech at an evacuation centre near Marawi for people who have fled the fighting.
It began when hundreds of militants waving black Islamic State flags rampaged through Marawi on May 23, torching buildings and taking Christian hostages.
Duterte immediately imposed martial law across the entire southern region of Mindanao, home to 20 million people, saying the assault was the start of an IS bid to establish a caliphate there.
More From This Section
The military deployed planes and attack helicopters to blast enemy positions, using American surveillance and intelligence assets, despite the risk to civilians and even their own soldiers.
Hundreds of civilians are still believed to be trapped in the militant-controlled areas, according to local authorities and aid workers.
Duterte said his ground troops would lose the battle if they fought without the air support.
"The military said if we don't use them (bombs), we would be dragged even deeper into this. We will be finished off," he said.
"If we won't use them, our soldiers will all be killed."
Sixty-two soldiers have died in the conflict, including 10 killed in a "friendly fire" bombing, according to authorities.
They have reported three policemen and 26 civilians also dying in the conflict, with 19 residents dying of disease in displacement camps.
The government has reported 258 militants being killed, including a Chechen, a Libyan, Malaysians and other foreigners.
The militants' main leaders, including a Filipino on the US government's list of most-wanted terrorists, remain in Marawi, according to authorities.