The blast occurred just before 11:00pm (1500 GMT), leaving bodies strewn amid the wreckage of plastic tables and chairs on a road that had been closed to traffic for the market in the heart of Davao city.
An improvised explosive device caused the explosion, presidential spokesman Martin Andanar said, adding drug traffickers opposed to Duterte’s war on crime or Islamic militants may have been responsible.
“There are many elements who are angry at our president and our government,” Andanar told DZMM radio, after referring to the drug traffickers and the militants.
“We are not ruling out the possibility that they might be responsible for this but it is too early to speculate.”
Twelve people were confirmed killed and more than 30 others injured, according to Ernesto Abella, another presidential spokesman.
Davao is the biggest city in the southern Philippines, with a population of about two million people. It is about 1,500 kilometres (930 miles) from the capital of Manila.
The blast occurred in the centre of Davao, close to one of the city’s top hotels that Duterte sometimes holds meetings in, as well as a major university.
“The force just hurled me. I practically flew in the air,” Adrian Abilanosa, who said his cousin was among those killed, told AFP shortly afterwards.
Duterte was in Davao on Friday but was not near the market when the explosion occurred, according to his aides.
They said he went straight into meetings with security chiefs following the blast.