"It's been four months. They are yet to deliver," Erdogan said in a speech in Ankara, as Prime Minister Ahmet Davutoglu held summit talks on the migrant crisis with EU leaders.
"Mr prime minister is currently in Brussels. I hope he will return with the money," added Erdogan.
The EU clinched an agreement with Turkey to deliver 3 billion euros (USD 3.3 billion) in funds for refugees in return for Ankara's cooperation in tackling the refugee crisis - the worst in the continent's history since World War II.
Erdogan said it was not the fault of Turkey, which is hosting 2.7 million refugees from the Syrian civil war, that so many migrants were using its coast as a springboard to reach the EU.
More From This Section
"Look, they say on the other side, 'don't let refugees come in'. Okay. But it is not us that is sending them. They are coming from the sea and a lot of them are unfortunately dying," Erdogan said.
The president said the Turkish coastguard has rescued close to 100,000 migrants from the sea but mocked the efforts of Turkey's neighbours in trying to save them.
"This is how we are different," the president said. "This is how we look at people and that is how they do it.