Arrange a rack in the top third of the oven and heat the broiler.
Halve and thinly slice 1 medium yellow onion (about 1 ¼ cups). Thinly slice 2 garlic cloves. Drain 2 (about 15-ounce) cans cannellini or butter beans, but don’t rinse.
Heat 2 tablespoons olive oil in a medium (10-inch) broiler-proof skillet over medium-high heat until shimmering. Add the onions and cook, stirring occasionally, until softened and starting to brown, 5 to 8 minutes. Add the garlic and ½ teaspoon dried oregano, and cook until fragrant, about 30 seconds.
Reduce the heat to medium. Add 5 ounces baby spinach in two batches, and stir until just wilted. Add the beans and 2 ½ cups marinara sauce. Cook, stirring occasionally, until starting to bubble, 3 to 5 minutes. Remove the skillet from the heat. Sprinkle with 8 ounces shredded low-moisture mozzarella cheese.
Transfer the skillet to the oven. Broil until the cheese is melted and browned in spots, 3 to 5 minutes. Meanwhile, pick the leaves from 4 fresh basil sprigs and tear if large (about ½ cup loosely packed).
Sprinkle the beans with ¼ cup grated Parmesan cheese, then garnish with the basil leaves and red pepper flakes if desired. Drizzle with honey if desired. Serve with garlic bread and more grated Parmesan cheese.
