Charles, who was seated one place away from Mugabe, was "caught by surprise" when Mugabe, 81, leaned over to offer his hand, a spokesman for the prince said, adding that the heir to the British throne finds Mugabe's regime "abhorrent."
Charles' office said the incident apparently came at the point in the service where members of the congregation exchange the peace — clasping each others' hands in a gesture of reconciliation.
Mugabe, whose government is accused of rights violations, had been widely criticized for attending Pope John Paul II's (search) funeral by sidestepping an EU travel ban because it does not apply to the Vatican.
"Prince Charles should have refused to shake his hand," said Richard Corbett, a European Parliament member from Britain's governing Labour Party.
"In fact, this was a golden opportunity to deliberately and very visibly refuse to shake hands with this man. To fail to do so was, frankly, stupid," Corbett said.
Another Labour EU legislator, Glenys Kinnock, said: "People like Prince Charles must have people advising them how to deal with these matters, because it's not the first time Mugabe has been canny about his behavior in such circumstances. There must be a limit to the allowances we make for this man, and shaking his hand is not a very sensible thing to do."
The European Union imposed travel sanctions in 2002 after observers from the bloc were barred from disputed presidential elections. Mugabe's ruling ZANU-PF party last week announced it had gained a two-thirds majority in parliamentary elections also marred by fraud allegations.
Britain said Tuesday the elections were flawed and criticized neighboring African countries for calling the ballot fair.
Criticism of Britain, Zimbabwe's former colonial ruler, and Prime Minister Tony Blair had been a main part of the campaign by Mugabe's party.
Last year, British Foreign Secretary Jack Straw also was criticized after he shook hands with Mugabe at a United Nations summit in New York.
Prince Charles had delayed his wedding to Camilla Parker Bowles by one day until Saturday to attend the funeral.