Os backticks '' no comando echo geram um processo e sua saída é substituída na linha de comando echo. Você pode ver isso com, por exemplo.
echo "'tput setaf 1'" | hexdump -C
00000000 1b 5b 33 31 6d 0a |.[31m.|
Isso funciona porque o conteúdo do "..." é expandido antes de ser passado para o eco.
O comando sed que você está usando envolve tudo em ' , de modo que é passado para o sed sem expansão e o sed vê tudo como texto literal.
Você pode consertar isso colocando "" em volta do seu comando sed
echo "foo" | sed -e "s/\(foo\)/'tput setaf 1''tput op'/g"
Você também teve um erro no seu comando sed. Os ( e ) precisam ter o escape \( e \) para denotar o padrão lembrado. Eu também nunca usei Eu sempre usei %code% como o primeiro padrão lembrado.