O problema é que bash está processando sua linha de comando antes de sed ter acesso a ela. Nesse caso, as soluções são alterar as aspas externas para aspas duplas:
sed -i "/remoteUrl/c\shahar.push(['remoteUrl','staging.zazzercode.com']);" predict.html
O problema foi que bash realiza a remoção da cotação antes de passar o comando para sed . Aos olhos de bash, seu comando original era uma série de strings entre aspas simples e bash removeu todas as aspas. Na versão acima, bash vê uma única cadeia de aspas duplas. Embora bash remova as aspas duplas antes de passar a string para sed , ela deixa as aspas simples internas apenas.