A solução na resposta do Mike é na maior parte correta, no entanto eu mudaria um pouco para criar o diretório somente se o grep encontrar algo evitando assim os diretórios vazios
#!/bin/bash
filenames=$(grep -Ril "$1")
[ $? -eq 0 ] && mkdir "$1"
for file in $filenames; do
cp "$file" "$1"
done