Prep the oven and pan: Preheat your oven to 400°F (205°C). Lightly oil a 9x13-inch baking dish or line it with parchment for easy cleanup.
Prepare the zucchini: Trim the ends and slice each zucchini lengthwise.
Use a small spoon to scoop out the centers, leaving about 1/4 inch of flesh to form a sturdy shell. Reserve about half of the scooped zucchini flesh, finely chop it, and set aside. Lightly brush the zucchini boats with 1 tablespoon olive oil and sprinkle with a pinch of salt and pepper.
Par-bake the boats: Place the empty zucchini boats cut-side up in the baking dish.
Bake for 8–10 minutes to soften slightly. This helps them cook evenly once filled. Remove and set aside.
Cook the sausage: Heat the remaining 1 tablespoon olive oil in a large skillet over medium heat.
Add the sausage and cook, breaking it up with a spoon, until browned and cooked through, about 6–8 minutes. Drain excess fat if needed, leaving about a tablespoon in the pan for flavor.
Sauté aromatics: Add the diced onion to the skillet and cook until translucent, 3–4 minutes. Stir in the garlic and cook for 30 seconds, just until fragrant.
Build the filling: Stir in the chopped zucchini flesh, tomato paste, Italian seasoning, and red pepper flakes.
Cook for 2–3 minutes to concentrate the flavors. Pour in the broth and simmer until the mixture thickens and looks saucy, 2–4 minutes. Season with salt and black pepper to taste.
Fill and top: Spoon the sausage mixture into the par-baked zucchini boats, packing it in generously.
Sprinkle mozzarella evenly over the top, then finish with the Parmesan.
Bake to finish: Return the baking dish to the oven and bake for 12–15 minutes, until the zucchini is tender and the cheese is melted and bubbly. For a golden top, broil for 1–2 minutes at the end, watching closely.
Garnish and serve: Let the boats rest for 5 minutes. Sprinkle with chopped parsley or basil.
Serve warm, with lemon wedges on the side if you like a bright finish.