Por manual do grep:
-v, --invert-match
Selected lines are those not matching any of the specified patterns.
Se você fornecer apenas uma linha abc e informar grep para selecionar apenas linhas que não correspondam a a , você obtém uma saída vazia e um código de retorno igual a 1.
Se você fornecer três linhas a , b e c e informar grep para selecionar apenas as que não corresponderem a a , você recebe b e c na saída e 0 como retorno código.
$ echo -e 'a\nb\nc' | grep -v a; echo $?
b
c
0