Preheat the oven. Set to 400°F (200°C). Line a baking sheet or casserole dish with parchment for easy cleanup.
Prep the zucchini. Trim the ends and slice each zucchini lengthwise.
Use a spoon to scoop out the center flesh, leaving a 1/4-inch border to create “boats.” Reserve about half the scooped flesh, finely chop it, and squeeze out excess moisture with a paper towel.
Season the boats. Arrange the zucchini cut-side up on the baking sheet. Brush with olive oil and sprinkle with salt and pepper. This helps them roast evenly and taste seasoned throughout.
Make the filling base. Warm 2 tablespoons olive oil in a skillet over medium heat.
Add onion and cook 3–4 minutes until soft. Stir in garlic and red pepper flakes; cook 30 seconds until fragrant. Add the chopped zucchini flesh, Italian seasoning, and smoked paprika; cook 3–4 minutes to soften and evaporate moisture.
Stir in the cheeses. Take the skillet off the heat.
Mix in cream cheese, Parmesan, 1/2 cup of the mozzarella, parsley, lemon zest (if using), and a pinch of salt and pepper. Fold in any optional add-ins.
Fill the boats. Spoon the cheesy mixture into the zucchini shells, mounding slightly. Top each with the remaining mozzarella.
Bake. Roast for 18–22 minutes, until the zucchini is tender but not mushy and the cheese is melted and starting to brown.
For extra color, broil 1–2 minutes at the end. Watch closely.
Finish and serve. Let rest 3–5 minutes. Garnish with fresh parsley and an extra sprinkle of Parmesan.
Add a light drizzle of olive oil if you like. Serve warm.