Prep the zucchini: Heat your oven to 400°F (200°C).
Trim the stems, then slice each zucchini in half lengthwise. Use a spoon to scoop out the centers, leaving about 1/4 inch of flesh to form a shell. Reserve about half of the scooped zucchini flesh, finely chop it, and squeeze out excess moisture.
Season the shells: Brush the zucchini boats with 1 tablespoon of olive oil.
Sprinkle with salt and pepper. Arrange them cut side up on a baking sheet or in a 9x13-inch baking dish.
Sauté aromatics: Warm the remaining tablespoon of olive oil in a skillet over medium heat. Add the onion and cook until translucent, about 3–4 minutes.
Stir in the garlic and cook 30 seconds, just until fragrant.
Cook the protein: Add the ground turkey or beef to the skillet. Break it up with a spoon and cook until browned, 5–7 minutes. Drain excess fat if needed.
Build the filling: Stir in the chopped zucchini flesh, crushed tomatoes, Italian seasoning, smoked paprika, and red pepper flakes.
Season with salt and pepper. Simmer for 3–4 minutes to thicken slightly. If using rice or quinoa, fold it in now for extra heartiness.
Fill and top: Spoon the mixture into the zucchini boats, packing it in evenly.
Sprinkle mozzarella over the top, then a light shower of Parmesan for flavor and browning.
Bake: Bake for 15–20 minutes, until the zucchini is tender when pierced and the cheese is melted and lightly golden. For a deeper golden top, broil for 1–2 minutes at the end, watching closely.
Finish and serve: Let the boats rest for 5 minutes. Garnish with chopped parsley or basil.
Serve with a crisp salad, garlic bread, or a side of roasted potatoes.