OpenBSD and FreeBSD do have sendfile(), but args are different compared to the interface presented by Linux. It should be trivial to write a wrapper, though:
https://man.openbsd.org/FreeBSD-11.1/sendfile.2 https://linux.die.net/man/2/sendfile
https://man.openbsd.org/FreeBSD-11.1/sendfile.2 https://linux.die.net/man/2/sendfile
OpenBSD:
$ man 2 sendfile
man: No entry for sendfile in section 2 of the manual.
$ grep -rni sendfile /usr/include | wc -l
0
FreeBSD: # grep -rni sendfile /usr/include | wc -l
30
edit: typo