Solução 1 : uma maneira é usar find com xargs :
find /dir -type f -print0 | xargs -0 sed -i 's#http://domain.com#https://www.domain.com#g'
Solução 2 : outra seria usar find com -exec , muito semelhante à sua pergunta:
find /dir -type f -exec sed -i 's#http://domain.com#https://www.domain.com#g' {} +
Ambas as soluções chamam sed com vários arquivos como argumentos. Portanto, sed não é chamado uma vez para cada arquivo, mas para cada conjunto de arquivos.
Solução 3 : em vez de sed , você também pode usar perl para a tarefa de substituição de pesquisa:
perl -i -pe 's#http://domain.com#https://www.domain.com#g' file
Combinado com o comando find / xargs :
find /dir -type f -print0 | xargs -0 perl -i -pe 's#http://domain.com#https://www.domain.com#g'