Seu uso de \s na regex significa que a expressão pode incluir novas linhas. Eu não estou familiarizado o suficiente com a forma como o -v é implementado no pcregrep para saber por que não é o inverso, mas tenho certeza que essa é a causa.
Se você alterar seu arquivo para:
apple
banana starts matching
this line should match
this too
and this
mango
pomelo
Então, mesmo sem o -v , a correspondência parece que não é o que você pretende.
$ pcregrep -M 'banana.*\n(\s.*\n)*' fruits.txt
banana starts matching
this line should match
this too
and this
mango
pomelo
Se for realmente apenas um espaço no início da linha que deve corresponder, sugiro alterar o \s para um ou mais espaços " +" .
Quando eu mudo o regex para 'banana.*\n( +.*\n)*' Ele combina (regular e inverso) de uma maneira que eu acho mais correta. Talvez use [ \t]+ se as guias também forem permitidas.