Why are anti-aliased normals so rough on polygon faces?
Why do your smooth shaded normals look so funny on this shape?  Because of the triangulation of long trapezoids.
Here's how Blender determines your per-sample normals: A) It calculates face normals (from the average plane of the face, for a quad.)  B) It calculates vertex normals from the face normals.  C) Then, very importantly, it triangulates the mesh (this is why a wireframe shaders shows triangles on a quad mesh).  D) Finally, it interpolates your vertex normals across each face to find the normal of each particular sample.
But let's look at what happens when we triangulate your mesh (using fixed triangulation, which is Blender's default method):

So first, be aware that when I triangulate, I'm going to get slightly different normals, because then I'm doing C before A or B.  I've left a copy of the untriangulated mesh in the upper left corner of the matcap view so you can see that the normals of the original still display triangulation.
But look at the triangulation: I'm left with these long skinny triangles, of uneven size.  For each sample inside each of those faces, I'm only interpolating from the 3 vertex normals composing that face.  The vertex normals are smooth throughout the mesh, but the triangulated mesh is not smooth-- the faces are of uneven size.  And so the per-sample normals are not smooth.  As we move our gaze across the object, the normals change rapidly then slowly, rapidly then slowly.
And this will persist even as we do procedural subdivision-- even as we subdivide, we maintain long, trapezoidal faces.
This is why one of the rules of good topology is, evenly sized square quads-- square in aspect and angle.  Is that doable for interesting meshes?  No, but it can be approached.  (This is one of the lesser appreciated rules of good topology, and I'm grateful for this SE question because it gives the simplest demonstration of it that I've seen.)
Okay, so then the next question is, how can we fix this?  By making our faces more square.  We're kind of stuck with trapezoids if we want to make this dish shape-- we can't get rid of the trapezoids without turning it into a cylinder.  But we can make them more square in aspect by adding loop cuts:

Upper left has our original mesh with subdivision level 1.  Lower right has our original mesh with two loop cuts to make our faces more square, and subdivision level 1.  Looks a lot better to me!  Of course, if you look more closely, you'll see triangulation-- unfortunately, triangulation is a fact of life in 3D rendering, and the only fix is lots of vertices.
Note: the problem here is a problem with interpolation of vertex data.  If we want to normal map this mesh, we don't have to worry about its actual normals, vertex or interpolated, because we're going to be overriding them anyways with arbitrary, per-sample normals.  (Although we will want to explicitly triangulate our low-poly, or else make sure our ultimate rendering engine triangulates in the same way as Blender, since those normals are specified relative to the interpolated normals, and those interpolated normals depend on exactly which way we triangulate our mesh.)