Note that Drawing Canvas gradients are gamma-correct, but sprite gradients are not. (In other words Drawing Canvas does gradients the right way, and sprite/everything else uses the wrong way.) So it is expected that if you compare Drawing Canvas to Sprite, you will see different results - the difference between gamma-correct and gamma-incorrect.