O GNU awk pode fazer isso com bastante facilidade.
Saída contínua:
tail -f logfile | grep 'stuff to grep for' | awk '{++i;print i}'
Você também pode deixar o grep e usar as expressões regulares do awk:
tail -f logfile | awk '/stuff to grep for/ {++i;print i}'
Para uma saída de linha única, você pode pré-definir um CR para que ele comece na frente da linha novamente (funciona em um console):
tail -f logfile | awk '/stuff to grep for/ {++i;printf "\r%d",i}'