The encapsulation requires a lot of CPU power, and on non specialised x86 hardware you end up needing a highly clocked CPU to get gigabit speeds.
OpenWRT is Linux based so has a multithreaded implementation.
My Flint 2 router has some sort of hardware acceleration so hammering a gigabit line shows <1% CPU, leaving lots of overhead for things like Docker.