Eevee compile times can get extremely long if you have multiple complex materials, such as procedural textures. I've had files with over 5 minute compile times. Cycles appears to have 0 compile time even on huge scenes. Both are using the GPU. I know these engines are different types (Cycles being a pathtracer), but what is the difference that causes this?
As far as I understand it (and I could be wrong):
Ray tracing engines like Cycles compute shaders on the fly as they are needed during ray tracing. The time spend by the engine precomputing stuff is more in the realms of scene analyzing (like BHV building) and optimizing ray tracing algorithms, which aren't shader precomputing.
Rasterized engines like Eevee precompute shaders and other data, compiling them to low level code and formats faster to execute by the GPU (GLSL for Eevee), optimizing (like eliminating dead code, folding constants, ...), and maybe other things. But at the cost of accuracy and overhead performance, static effects (reflection probes, shadow maps, baked global illumination, ...) and lots of manual work to do in order to set these up in a way that looks good.
Overall, the differences in approaches come from differences of needs. One prioritize accuracy over render time, another prioritize render time over everything.