"I suggest they get a new leader who can make a deal because he could have made many deals, but for some reason he never does," Trump told reporters at the White House on Saturday.
"I think it's time for Ukraine to get a new president."
Zelenskiy, in some of his sharpest criticism yet of the White House, blasted Trump's deal with Russian President Vladimir Putin to lift sanctions on Russian diesel, which comes as soaring energy prices have become a political liability for Trump's Republican Party ahead of next month's midterm elections.
"Today, Russia said thank you for the lifting of sanctions on diesel exports by dropping five glide bombs on residential buildings in Zaporizhzhia," Zelenskiy said after a Russian strike on that city on Saturday killed 20 people, including three children.
The Russian government said on Saturday it had partially lifted a ban on diesel exports with immediate effect.
The southern city of Zaporizhzhia has been a regular target of Russian bombardment with strikes intensifying in the past few months.
Trump's decision to lift sanctions on Russian diesel exports, which were imposed about a year ago with the intent of depriving Russia of funding for its war in Ukraine, coincides with persistently high fuel prices that have followed from US conflict with Iran.
Kyiv had instead urged Washington to increase pressure on Moscow in an effort to force it into serious negotiations to end the four-and-a-half-year war.
Trump has criticised Ukrainian strikes on Russian oil refineries, which he says have driven up global prices, while Kyiv has said it wants a total halt on all energy strikes by both sides as Moscow pummels Ukraine's power grid.
"I said to him, 'Do what you want. Don't hit refineries. There's plenty of targets. Don't hit refineries.' And he went out and he hit," Trump said of Zelenskiy as he departed for a political rally.
"He better damn well stop," Trump added.
A six-year-old girl was among those killed in Zaporizhzhia when one strike reduced part of an apartment block to rubble.
It was the third mass-casualty attack on Ukraine this week.
Nearly 80 civilians were killed in Russian strikes on Wednesday and Thursday, including at least 30 killed by a bomb in the eastern garrison city of Kramatorsk and 22 others by a missile in the town of Pryluky, about 130km east of Kyiv.
The latest strikes followed talks between Ukrainian and European officials with US negotiators in Miami on Friday, which were aimed at developing a proposal for ending the war.
Trump announced the diesel deal while the negotiations were under way, a move Zelenskiy said had caught Kyiv by surprise.