The other explanation is that it would be easier to maintain - right now Android kernel is not the same as mainline kernel and has a few rather large functional patches (things like Binder, some modified permissions, wakelock system, support for BIG.little) which are really tough to port ahead. This is why most of devices are still running rather old kernels - e.g. even Pixel is on 3.18.
Patches for these largest features weren't accepted into mailine - they're not really fully fit for a general-purpose kernel and Google's and Linux kernel teams differ in opinions if they're even required and how they should be implemented. As such, it probably makes sense for Google to use their own, fully internally developed, kernel which is built from ground up to handle IPC, security and mobile chips in the way Android/ChromeOS expect it to.