Duterte ran for election in 2016 on an anti-elite agenda, vowing to end a practice where employers terminate contracts every five months to avoid paying workers as regular employees.
However on Friday, Duterte's office said he had vetoed a bill that would have prohibited such conduct, as it could discourage investments and harm businesses in the Southeast Asian nation.
"This move of Duterte is a clear betrayal (of) the thousands of contractual Filipino workers who have put their high hopes to the electoral campaign promise of Duterte," said labour group Defend Job Philippines in a statement.
Duterte, 74, remains popular midway through his six-year term, with a June survey by Manila pollster Pulse Asia showing he had an approval rating of 85 percent.
Alan Tanjusay, spokesman for the Trade Union Congress of the Philippines, told AFP that for ordinary workers, the president's latest move means that "their hope and aspirations for higher paying jobs are shut by Mr. Duterte himself".
"He risks hurting his mass base. We can strongly say these (contractual) workers are the diehard Duterte believers who believed their lives would change under his presidency," he added.
Tanjusay said his group estimated 37 percent of the nation's labourers were on short-term contracts, in industries ranging from hotels and manufacturing to food and agriculture.
The Security of Tenure bill aimed to clarify ambiguities in current laws that allow employers to skirt the ban on the practice.
Business groups -- including foreign chambers of commerce -- had urged Duterte to veto it, saying it would make the Philippines less competitive.
Duterte's spokesman said the president would pursue his campaign promise but urged congress to pass a law favourable to both workers and employers.