Preheat the oven to 375°F and line a large baking sheet with parchment paper.
Wash the zucchini, trim the ends, and slice each zucchini in half lengthwise.
Scoop out the flesh from each half using a spoon, leaving about a ¼-inch border. Chop 1 cup of the scooped-out zucchini flesh and set aside.
Arrange the hollowed zucchini halves cut-side up on the prepared baking sheet.
In a large skillet over medium-high heat, brown the ground beef, breaking it apart as it cooks (5-7 minutes).
Drain excess grease if needed. Add diced onion and chopped zucchini flesh to the skillet and cook for 2-3 minutes.
Stir in minced garlic and cook for another 30 seconds until fragrant.
Add the tomato sauce, Italian seasoning, salt, and pepper. Stir well and simmer for 2-3 minutes.
Spoon the beef mixture evenly into each zucchini boat, leaving a little room at the top.
Top each stuffed zucchini with shredded mozzarella cheese.
Bake in the preheated oven for 20-25 minutes, until cheese is bubbly and zucchini is tender but not mushy.
Let cool for 5 minutes before serving.