Preheat the oven to 350°F (175°C). Heat the olive oil in a large skillet over medium heat. Add the chicken, drained tomatoes and green chiles, red onion, drained black beans, chili powder, cumin, garlic powder, onion powder, smoked paprika, and cayenne. Cook until the onion softens and the filling is hot, then remove from the heat.
Divide the filling among 6–8 flour tortillas. Roll each tortilla and arrange it seam-side down in a 9×13-inch baking dish.
Melt the butter in the skillet over medium heat. Gradually whisk in the flour until fully combined. Stir in the sour cream, salsa verde, and 1 cup Monterey Jack until the cheese melts and the sauce thickens.
Spread the sauce evenly over the enchiladas. Top with the cheddar and remaining Monterey Jack. Cover with foil and bake for 20 minutes.
Remove the foil and bake for another 10–20 minutes, until the sauce bubbles around the edges, the center is hot, and the cheese is melted with light golden spots. Rest for 15 minutes before serving.