In a large sauté pan over medium heat, heat oil. Add onions and garlic; toss to coat. Add 1 cup stock; cover and reduce heat; simmer until onions are soft, 20 minutes. Reserve 1/2 cup liquid. Add scallions, oregano, salt and pepper to onion mixture; increase heat to medium and cook, stirring, until liquid evaporates, 20 minutes.
Cook noodles as directed on package; drain and blot dry.
Cook spinach as directed on package; drain, squeeze dry, and season with salt and pepper.
In a small saucepan over medium heat, melt butter. Add flour; stir until roux is brown, 2 to 3 minutes. Add remaining 1/2 cup stock to reserved liquid; whisk into roux until thick, 5 minutes.
In a bowl, beat egg; stir in ricotta and zest.
Coat a 9“ x 13” pan with cooking spray; spread half of stock-roux mixture on bottom. Line pan with 3 noodles; layer on half of onion and ricotta mixtures, half of spinach and 1/3 cup parmesan. Repeat layer with 3 noodles, remaining onion and ricotta mixtures and spinach, and 1/3 cup parmesan. Top with remaining 3 noodles, half of stock-roux mixture and 1/3 cup grated parmesan.
Cover with foil; bake until light brown, 50 minutes.
Reduce heat to 325° remove foil and bake 15 minutes more.