Os elementos \< e \> têm um significado especial na regex de sed (como limites de palavras).
Não dificulte as coisas usando / como separador do sed e tentando obter o escape certo - escolha um delimitador alternativo que não apareça no seu texto, como % ou | .
O comando i ( insert ) parece-me uma escolha mais natural do que o comando s para esta tarefa: você pode tentar
'\%</form>% i\<input type="hidden" name="_token" value="<cfoutput>#STOKEN#</cfoutput>"/>'
Para aplicar esse comando aos subdiretórios recursivamente, você pode fornecer o comando sed como um argumento -exec ou -execdir para find , por exemplo,
find path/to/dir -type f -name '*.cfm' -execdir sed -i -re '\%</form>% i\<input type="hidden" name="_token" value="<cfoutput>#STOKEN#</cfoutput>"/>' {} +
Como alternativa, você pode usar a funcionalidade globstar do shell.