grep está usando expressões regulares, conforme definido pelo POSIX . Por qualquer motivo, o POSIX não definiu \tcomo tab.
Você tem várias alternativas:
diga ao grep para usar as expressões regulares conforme definido pelo perl (o perl tem \tcomo tab):
grep -P "\t" foo.txt
a página de manual avisa que esse é um recurso "experimental". pelo menos \tparece funcionar bem. mas recursos perl regex mais avançados podem não.
use printf para imprimir um caractere de tabulação para você:
grep "$(printf '\t')" foo.txt
use o caractere de tabulação literal:
grep "^V<tab>" foo.txt
ou seja: digite grep ", pressione ctrl+v, depois pressione tabe digite " foo.txt. pressionar ctrl+vno terminal faz com que a próxima tecla seja tomada literalmente. isso significa que o terminal inserirá um caractere de tabulação em vez de acionar alguma função vinculada à tecla tab.
use o recurso de cotação ansi c do bash:
grep $'\t' foo.txt
isso não funciona em todas as conchas.
use awk:
awk '/\t/'
use sed:
sed -n '/\t/p'
Consulte o artigo da wikipedia sobre expressões regulares para obter uma visão geral das classes de caracteres definidas no POSIX e em outros sistemas.