I’ve got this problem with filling loops, I don’t know if a simpler solution exists, I usually do it manually. I’ll attach a screenshot to demonstrate.
The left one was the initial state, on the right I’ve already filled the loop manually.
I also have the same problem when I want to fill a circle or cylinder - what I usually do is create a plane, subdivide it, make the rim sphere with Alt+Shift+S then bridge with initial circle or cylinder.
For the 1st case, no idea if some automated function would help as i think i would have done it manually, helped with some cursor as pivot to extrude and scale to 0