I created this object which has a bevel modifier and a mirror one(x and z axis). The top faces are of the same height so they should shade even but they shade some bumping out as showing in the picture. I tried selecting faces which have not equal to 4 sides and turned out none, so there was no Ngons. Also I checked these was no vertex that unintentionally created and overlaid. So what actually causes this issue?
It has to do with your Bevel modifier and your Shade Smooth. If you apply the Bevel, you have this topology:
The small face I highlight is slightly tilted compared to the top flat face. As you have shade smoothed the object, Blender tries to smoothly transition from the big face to the slightly tilted small face. As each face is actually made of 2 triangles in a 3D object, and as the top face is rather big and elongated, the transition between these triangles is pretty noticeable, it creates some sort of artifacts.
You can easily fix the problem if you select the top faces:
Then press i to inset, and B to keep the borders stick to the mirror axis:
This time, as the next faces of the top face are flat as well, there is no more noticeable shading problem: