Preheat and prep the pan: Set your oven to 400°F (200°C). Line a large baking sheet or a 9x13-inch baking dish with parchment or lightly oil it.
Prepare the zucchini boats: Trim the ends and slice each zucchini lengthwise.
Use a spoon to scoop out the centers, making “boats,” leaving about 1/4-inch thick walls. Chop about half of the scooped flesh finely and set aside; discard the rest or save for another use.
Season the boats: Brush the cut sides with 1 tablespoon olive oil and sprinkle with a pinch of salt and pepper. Place them cut-side up on the prepared pan.
Par-bake the zucchini: Bake for 10–12 minutes to soften slightly.
This keeps them from getting watery later and helps the filling set.
Brown the meat: While the zucchini bakes, heat the remaining 1 tablespoon olive oil in a large skillet over medium-high heat. Add the ground beef or turkey and cook, breaking it up, until no longer pink, about 5–7 minutes. Drain excess fat if needed.
Add aromatics: Reduce heat to medium.
Stir in the onion and cook 3 minutes until translucent. Add the garlic and cook 30 seconds, just until fragrant.
Build the sauce: Stir in tomato paste, marinara or crushed tomatoes, Italian seasoning, smoked paprika, red pepper flakes, salt, and black pepper. Fold in the chopped zucchini flesh you saved.
Simmer 3–4 minutes to thicken. Taste and adjust seasoning.
Cheese it up: Remove the pan from heat. Stir in half of the mozzarella and half of the Parmesan until just melted and combined.
Fill the boats: Spoon the meat mixture evenly into each zucchini.
Don’t overpack; a gentle mound is perfect.
Top and bake: Sprinkle the remaining mozzarella and Parmesan over the boats. Bake 12–15 minutes, until the cheese is melted and the zucchini is tender but not mushy.
Finish and serve: Let rest 5 minutes, then garnish with chopped basil or parsley. Serve warm.