You're not going to be able to fully automate this, or do it with a single tool, so I would approach the problem by breaking it down. Here's one breakdown that might work:
- Enable the F2 add-on if you haven't already.
- Subdivide the bottom horizontal edge, perhaps 20 times, as a starting point.
- Make a face of the vertex at the far left, the farthest left new vertex on the subdivided horizontal line and the first vertex on the right of the curve. It's a triangle but don't worry about that now.
- Select that runs roughly vertically from the curve to the horizontal edge. Move your cursor slightly to the left of that.
Because you have F2 enabled, at this point, typing F to create a face with just that edge selected, will create a quad using the next vertex on the horizontal face and the next vertex on the curve.
Continue typing F until you reach a point on the curve that screws up a face because part of the curve lies below the point you selected on the curve. This should happen around the 10th or 11th face.
Type CTRL–Z to undo the messy face. Select the next vertex on the curve that won't do this, and a vertex on the horizontal line roughly below it. Type F to create an edge. Move the cursor to the left of that edge and resume creating faces.
Eventually you'll get to the end and most of the faces will be filled in. You may have to subdivide the horizontal line again, or you may end up with left over vertices. If you have left over vertices, select them, type X and choose dissolve vertices.
Once that's done, you should be able to use a similar approach for the remaining open areas, except that you need to use two vertices on the curve to start with. In some cases, the necessary edge will already have been created as you marched along the horizontal. In others you'll have to create the edge as I described above.