Whisk together the eggs, milk, salt, and pepper in a large bowl. Set the egg mixture aside.
Dice the onion and set aside.
Heat an oven-safe skillet over medium heat. Add the cooking oil. Saute the diced onion until soft and translucent.
While the onion cooks, roughly chop the spinach and slice the grape tomatoes in half.
Add the chopped spinach and sliced tomatoes to the skillet. Quickly stir to combine with the onions without cooking or wilting the spinach.
Immediately pour the egg mixture over the vegetables. (It's okay if the eggs don't fully cover the vegetables.) Top the egg mixture with crumbled feta.
Let the frittata continue cooking over medium heat until the eggs are set around the edges (about 3 minutes).
Transfer the frittata to the oven and bake until the eggs are set in the center but still wobble slightly (about 15 minutes, but the total bake time will vary). The frittata will continue to cook as it cools in the hot pan, so avoid overcooking it at this step.
Remove the frittata from the oven. Let the frittata cool for 5 minutes before slicing and serving. If the frittata is not fully set when you try to slice it, return it to the oven for another 2-3 minutes.
Notes
If using a non-cast iron skillet, double-check to ensure it is oven-safe (Do not use pans with plastic handles, connectors, or Teflon coating!)
Store the leftovers tightly wrapped in the refrigerator for up to 4 days.
Serve the leftovers cold or reheat them gently in the microwave to prevent the eggs from overcooking.