The reason you can't have Grid Fill to work is simple : you can't have an all-quads topology fill a closed loop with odd number of vertices.
Grid Fill fills a closed edge loop or two edge loop with the same amount of vertices with an all-quads topology and if you select the edge loop on your file, you can see that is has
721 vertices :
If you want to fill that with an all-quad topology (whether you Grid Fill it or you fill it by hand), you will have to add one vertex or dissolve one so that you get an even number of vertices. That's why it works when you Merge By Distance.
If you don't want to reduce the vertices, you can just add one by subdividing one of the edges and then Grid Fill.
The grid fill will work but it may give you a weird result like this where the faces overlap or the new vertices go outside of the original edgeloop :
This happen offten when you try to Grid Fill non-convex shapes like this one.
You can try to correct it by changing the
Offset value of the operator but in my case, I couldn't find any values that gives a decent result so my solution would be to give the Grid Fill a "little help".
Undoing the last grid fill I attempted, I separate the shape into smaller convex shapes that would be easier for Grid Fill to deal with. I just make sure that each part has an even number of vertices around it :
Then apply Grid Fill on each part and tweaking each result to give the best outcome. It will take some time but it would give something like this after you smooth the inner vertices a few times with W>
Smooth Vertices :
This method is the fastest way I could find with native Blender tools. If the results doesn't satisfy you, you could always try to fill it by hand or use ALTF to fill it with triangles and remesh it with addons like Quad Remesher.