eval is a builtin specified by POSIX so you'll find that in every POSIX-compatible shell.
Anyway, if you just want to execute the command you don't even need it. Simply wrapping the pipe in $() is enough because it will substitute the output of fzf right into the command line:
$(fc -lnr 1 | sed "s/^[[:blank:]]*//" | fzf)
If you want it as an alias, you have to quote it with single quotes so it's expanded when you run the alias and not when you define it.
alias h='$(fc -lnr 1 | sed "s/^[[:blank:]]*//" | fzf)'
As for integrating it with xclip, I think that will require some funny I/O redirections.