Para editar o arquivo no local com OSX sed , você precisa definir a extensão vazia:
$ sed -i '' '1i\
#encoding:utf-8' filename
E você precisa de uma nova linha literal após i\ . Isso é especificado por POSIX sed .
Apenas o GNU sed permite que o texto seja inserido na mesma linha com o comando.
sed também pode trabalhar com vários arquivos de uma só vez, então você pode usar -exec command {} + form:
$ find . -iname "*.erb" -type f -exec sed -i '' '1i\
#encoding:utf-8' {} +