Because BSDs don't use the GNU userland?
As to why they don't use similar techniques, probably because they historically didn't really care enough about the performances of yes(1) to bother with it.
FreeBSD has since added output buffering to yes(1), you can see the difference between openbsd yes(1)[0] which remains utterly naïve and freebsd yes(1)[1] which uses an 8k internal buffer.
[0]: https://github.com/openbsd/src/blob/master/usr.bin/yes/yes.c
[1]: https://svnweb.freebsd.org/base/head/usr.bin/yes/yes.c?view=...