O shell está processando a linha de comando antes que seu script a veja. Só passa o que resta depois desse processamento (esse comando antes do pipe). Para contornar tal processamento você precisa citar todo o comando:
logme 'ls -lh | grep -v file2'
Você tem um novo problema. O comando está em uma string e você não pode executá-lo diretamente. Uma maneira de fazer isso é com eval
eval "$FULL_COMMAND" > logs/${LOGNAME}.o.log 2>> logs/${LOGNAME}.e.log
Mas o eval deve ser usado com cuidado, pois é facilmente explorável: link