Melt butter in a 10-12 inch cast iron skillet over medium heat. Add mushrooms, salt and pepper. Cook for for 3-5 minutes, until most of the liquid has been absorbed.
In the mean time in a bowl beat eggs, add milk and mozzarella cheese.
Add zucchini spinach to the pan and cook for 1-2 minutes. Add ham and cook for 1 minute.
Then transfer the mushrooms, spinach and ham to the bowl with the eggs and stir.
Grease the cast iron skillet with the remaining butter, tilting the pan, but do not touch.
Pour the mixture back into the skillet.
Cook on the stove top over medium heat for about 8-10 minutes. It is important that you use a spatula to loosen the eggs from the sides and bottom of the skillet a few times in the first few minutes of cooking, so the mixture on the bottom does not burn.
Heat the broiler.
After 10 minutes of cooking, the bottom and the sides of the frittata should be almost cooked, but the top will be undercooked.
Transfer to the oven and broil for 1-2 minutes, watching constantly, so the top does not burn.
Remove from heat, let it cool for at least 3-5 minutes (up to 10 minutes), then slice, carefully remove from the pan and serve.