Como a mensagem de erro diz, você está perdendo o | final para terminar o comando s :
sed -i 's|/group/dairy/phuongho/garuns/out|$XXX/out/|' exp/garuns.vpz
^
Observe que, como você usa aspas simples, $XXX será substituído no arquivo literalmente. Se você quiser o valor da variável XXX , use aspas duplas ( sed -i "..." ).
Além disso, você tem uma barra inicial, mas nenhuma barra no padrão e vice-versa na substituição. (Isso pode ser o que você quer também, mas parece estranho.)