The Iraq Inquiry was launched after British troops left the country in July 2009 and public hearings began in London that November, with the report initially expected in late 2010.
Chaired by former senior civil servant John Chilcot, the hearings ran on until February 2011, taking evidence from a wide cast of politicians, diplomats and military personnel, including former prime minister Tony Blair.
It was meant to report by the end of that year.
Cameron said that as the inquiry was independent, he could not compel its release.
"My understanding is this: the report is largely finished but in every report like this there is a process where you have to write to those people who are criticised in the report and you have to give them an opportunity to respond," Cameron told the House of Commons.
Signup to our newsletter and follow us on Facebook and Twitter!
"This process has to be finished and then the report will be published.
"I find it immensely frustrating but it is not a matter for me -- I am not able to order the publication of this report."
Douglas Hurd, who was foreign secretary under former Conservative prime ministers Margaret Thatcher and John Major, has described the delay as a "scandal".
The inquiry was set up to learn lessons from the six-year conflict, in which 179 British troops died.
It looked at the justification for the invasion and its legality, the conduct of the war and the supply of military equipment to Britain's troops, and Iraq's descent into chaos after the invasion.
Former prime ministers Tony Blair and Gordon Brown were among the wide cast of diplomats, ministers, spies, military chiefs, spin doctors and civil servants called as witnesses, some of them -- including Blair -- more than once.
The inquiry had cost £9 million ($13.6 million, 11.5 million euros) by April 2014.