A gamut issue is not the root cause of the problem. This is just how CMYK printing works. It would be logical to assume that if you start with 100% cyan and 100% magenta and transition to white, keeping the cyan and magenta in equal amounts, the hue would stay constant, but it doesn't. It transitions from a fairly neutral blue to a slightly purple-tinted blue.
To solve this you have to put extra stops in your gradient and adjust them to compensate. It might be easier to add the stops in RGB mode and then convert to CMYK.