Existe um erro na sua sintaxe. O Find está procurando por \;
ou \+
, mas lê |
. O Grep está tentando abrir um arquivo chamado ";". A diferença entre terminar -exec com um ponto-e-vírgula ou um plus é executar o comando uma vez para todos os arquivos (+) e executar o comando uma vez para cada arquivo (;).
Tente isto:
find ./ -name "*.log.zip" -exec zcat {} \+ | grep ERROR
# or
find ./ -name "*.log.zip" -exec sh -c 'zcat {} | grep ERROR' \;