it is most likely that the bevel fixed it because it insulates the awkward topology on the top surface from the 90 degree corners. you could probably achieve the same result by insetting all the top faces.
While the face normals (the one from a center of each triangle ) looks perfectly up those normal are derivative as a median of vertex normals in triangles corners. The bottom left corner for example , clearly not 90 degree up . it's what creates shading gradients. Face weighting, or direct normals editing could fix it .…