Most colours are ok and white is perfect. It would be interesting to discover why this happens.
Could be a wonky default gamma curve, optimized for nominal backlight current (which can be pretty bright; I tend to run them at lower currents, where the color temperature differs a bit so one can compensate by using a slightly lower (more linear) gamma current for red and green). See
ILI9341 manual (PDF): First use command 26h to set the default gamma (2.2), then command 2Dh to set the 128-byte RGB lookup table. See section 7.4 starting on page 55 for the order of entries in the lookup table (32 6-bit red values, 64 6-bit green values, and 32 6-bit blue values; 000000₂ = 0% to 111111₂ = 63 = 100%).
The best gamma and brightness values are such that the darkest non-black red, green, and blue are distinguishable from black; the lightest non-white red, green, and blue are distinguishable from white; and the 50% checkerboard of black+red, black+green, and black+blue correspond to the 50% shade of red, green, and blue. This is perceptual, so depends not only on the backlight brightness, but also on the ambient illumination.