Você pode fazer isso facilmente com um bom forro:
grep -l -i -r -Z pattern | xargs -0 -I source cp source /target
Alguns comentários como isso funciona. A opção -l do Grep imprime apenas um nome de arquivo se houver uma correspondência no arquivo, portanto, produz uma lista de arquivos a serem copiados. O comando Xargs constrói um comando para cada comando de cópia e o executa. Xargs substitui o argumento chamado "source" por um nome de arquivo lido a partir da entrada padrão. Espaços e outros personagens engraçados em nomes de arquivos são tratados com opções -Z e -0.