The reason behind this difference is coming from the difference between how "Material" and "MBP"s are handling color values. The MBP.SetColor considers color value to be always set in sRGB space and is converted to linear if the active color space is linear while this is not the case for Material.SetColor . So basically you need manual updating of the color value if you switch between color spaces. This is a conscious performance-oriented trade-off, and we won't change this behavior. If you want to work around it, just set the animated values in gamma space with the formula:
gammaRGB = new Color(
Mathf.Pow(hdrColor.r, 1f / 2.2f),
Mathf.Pow(hdrColor.g, 1f / 2.2f),
Mathf.Pow(hdrColor.b, 1f / 2.2f),
linearColor.a );