Você pode manipular a linha de entrada com sed
e encadear a correspondência de padrão de várias linhas:
/pat1/ { N; N; ...; /pat2\npat3\n.../q }
Então, no seu exemplo, isso seria, por exemplo:
sed -n '/^dove$/ { N; N; /\nbird\nbunny$/q; }; p' infile
Saída:
cat
dog
fox
cow