Go to the object data properties for one mesh and create a shape key. Then select the other shape and the one with the shape key again. (Shift selecting so both are, but you want the one with the key to be the active one.) Below the +/- on the shape key list, there’s a down arrow. Click on it and a list comes up. One of the options should be “Join as shapes”. Provided the vertex count and order is the same between both objects, it should do what you want (or come really close). Then adjust the shape key slider value to go from one to the other.
It’s ok in regards to vertex count (it’s working), however it looks like the vertex order isn’t the same. Which is why it’s making a bit of garbage. I suggested it because it seemed there may have been a chance of it working if both conditions were met.
Not sure how to fix that. It might have to do with active vertex while doing grid-fill or some other factor. (Changing the offset until the grid lines up again? Which should be a 180° change in how the mesh is built.) No guarantee on this, since it’s not clear what’s going on internally when the grid is being built with the fill.
Might be some trick with the vertex data modifier between the two meshes, applying it, and then doing the thing I suggested to make the shape-key. Problem is I’m not familiar enough with how it works. (I remember seeing it can do stuff like copying normals, but there were other features available that the example I saw didn’t go into.)