Heat the oven to 400 °F. The peppers and filling cook best when the oven is fully hot before the baking dish goes in.
Cook the ground beef in a large skillet over medium heat with part of the salt and the black pepper for about 10 min, breaking it up as it browns. When the meat is no longer pink, stir in the garlic and red pepper flakes and cook 1 min more until fragrant.
Drain off the beef fat, then squeeze excess moisture from the spinach. This keeps the filling from turning greasy or loose once the cheeses are mixed in.
Stir the ricotta, spinach, and parmesan together in a large bowl, then fold in the cooked beef. The mixture should look thick, evenly combined, and easy to mound into the pepper halves.
Halve the bell peppers, remove the seeds and ribs, and arrange them in a 9x13 glass or ceramic baking dish. Set them cut side up so the filling stays neatly inside instead of sliding out.
Fill each pepper half with the beef and ricotta mixture, piling it slightly above the edge. A rounded top helps hold the sauce and cheese in place as the peppers bake.
Spoon about 2 tbsp of tomato sauce over each filled pepper and scatter the mozzarella across the tops. The sauce keeps the surface from drying out while the mozzarella melts into a full cheesy cap.
Bake for 30 min, then switch the oven to broil and cook the peppers 6 inches from the heat for 1 to 3 min. The peppers should feel softened and the cheese should turn lightly golden brown with bubbly edges.
Finish with basil or parsley before serving. The fresh herbs brighten the rich filling and make the whole dish taste less heavy.