The criticism from Zeid Ra'ad Al Hussein is the latest volley in an escalating war of words between the United Nations and Sri Lanka over impunity for crimes committed during the 37-year civil war, which ended in 2009.
"The consistent failure to effectively investigate, prosecute and punish serious crimes appears to reflect a broader reluctance or fear to take action against members of the security forces," Zeid said in a speech to the UN rights council.
But earlier this month, Sri Lankan President Maithripala Sirisena rejected the appeal, saying he would not "allow non-governmental organisations to dictate how to run my government", nor heed calls to "to prosecute my troops."
Colombo has also asked the UN for two more years to set up a war-era probe, after Sirisena's government agreed to the terms of an October 2015 UN resolution calling for an inquiry to be formed within 18 months.
More From This Section
Zeid said any justice mechanism set up by Colombo would need foreign judges in order to be "credible".
Sirisena, a member of the majority Sinhalese community, received the support of the Tamil minority after promising accountability for excesses carried out by the largely Sinhalese military.
But Sri Lanka's main opposition Tamil party has accused Sirisena of failing to deliver on accountability.