Isso acontece porque a lsmeans() usa médias ajustadas para o efeito de peso inicial enquanto que HSD.test() usa as médias amostrais que não são ajustadas. Com a função doBy::LSmeans() pode-se verificar que as médias ajustadas são para um animal hipotético de peso igual a média dos animais do experimento. Quando fizer análise de covariância, o mais correto é usar médias ajustadas. As médias amostrais só serão iguais a média ajustada quando os efeitos dos fatores a serem marginalizados são ortogonais. Esse é o caso do experimento em DBC balanceado onde as médias ajustadas e as médias amostrais são iguais pois o efeito de bloco é ortogonal ao de tratamentos.
library(multcomp)
library(doBy)
lsm <- LSmeans(modeloCOVAR, effect = "DIETA")
lsm$K
# Média do peso inicial.
mean(COVARIANCIA$PESOINIC)
# Média do ganho por dieta.
aggregate(GANHO ~ DIETA, data = COVARIANCIA, FUN = mean)
À disposição.