The shading depends on vertex normals. Flat thing should have them same directed . Typically 3d packages control vertex normal on their own but with lots of tiny long triangles errors usually happen . insetting or beveling or face weighting are just ways to help automatic algorithm. You can do same manually too. Like…
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 .…