Como a saída de grep é armazenada em buffer, use a opção --line-buffered de grep para ativar o buffer de linha:
tail -f /path/to/log | grep --line-buffered 'X' | grep -v 'Y'
Se o seu grep não tiver a opção, você poderá usar stdbuf como alternativa:
tail -f /path/to/log | stdbuf -oL grep 'X' | grep -v 'Y'