Bash's implementation[1] isn't especially fast. It gets its speed by not having to fork, which is expensive on systems with dynamic linking.
[1] http://git.savannah.gnu.org/cgit/bash.git/plain/builtins/ech... http://git.savannah.gnu.org/cgit/bash.git/plain/support/rech... http://git.savannah.gnu.org/cgit/bash.git/plain/support/zech...