Heat the olive oil in a large deep skillet or shallow Dutch oven over medium heat. When the oil is hot but not smoking, add the sausage. Cook for 3–5 minutes, stirring often and breaking up any large pieces, until browned.
Add the diced onion to the sausage. Cook for 2 minutes, stirring frequently.
Add the garlic, Italian seasoning, and black pepper. Cook for 1 minute, stirring frequently, until fragrant.
Stir in the pasta sauce, undrained diced tomatoes, and 2 cups beef broth. Bring to a gentle simmer. Lower the heat to medium-low, cover, and cook for 5–7 minutes to let the flavors come together. Keep it at a simmer (adjust heat as needed) and stir occasionally.
Add the broken lasagna noodles. Stir well to coat, then press them down so they’re as submerged in the sauce as possible.
Bring back to a gentle simmer, then lower the heat to medium-low, cover, and cook for 18–23 minutes (depending on how tender you like your noodles). Stir often (every few minutes is not excessive here) to prevent sticking, especially around the edges and bottom.
Check the noodles around 15 minutes to gauge remaining time (they will cook a bit more once the zucchini is added). As the sauce thickens and the noodles absorb liquid, stir more frequently to keep anything from sticking.
Stir in the zucchini, cover, and cook for 5–10 minutes, or until the zucchini reaches your desired doneness. Keep the mixture at a simmer and stir as needed. (Cook uncovered if you need to thicken the sauce further.)
Taste and add salt if needed. Keep in mind that the mozzarella cheese and ricotta both contain salt. As a reference, we added a pinch to ours.
Dot the top with ricotta (spoonfuls scattered across the surface) and sprinkle the mozzarella over everything. Cover, reduce heat to low, and let it sit for 3–6 minutes, or until the cheese is melted.
Garnish with fresh herbs and serve with grated Parmesan and a little red pepper flakes on the side, if desired.