Bring a large pot of salted water to a boil.
Cook pasta until al dente. Reserve 3/4 cup cooking water, then drain.
Warm olive oil in a wide skillet over medium heat.
Sauté onion until translucent, about 3 minutes, stirring occasionally.
Add zucchini. Cook until lightly browned and just tender, 5 to 7 minutes.
Stir in garlic, tomato paste, oregano, and red pepper flakes. Cook 1 minute.
Add cherry tomatoes. Cook until they burst and release juices, 3 to 4 minutes.
Pour in 1/2 cup pasta water. Season with salt and black pepper.
Toss in drained pasta, butter, and lemon zest. Add more water if needed.
Off heat, fold in basil and half the Parmesan. Serve with remaining cheese.