Prepare the filling: In a large skillet, melt the butter over medium heat. Add the onion and cook until softened, about 5 minutes. Add the garlic and cook for 1 minute more, until fragrant. Add the chopped shrimp and cook until pink and just cooked through, about 2-3 minutes. Be careful not to overcook. Remove from heat.
Combine filling ingredients: In a large bowl, combine the cooked shrimp mixture, softened cream cheese, shredded cheese, cilantro, chili powder, cumin, salt, and pepper. Mix well.
Make the enchilada sauce: In the same skillet, melt the butter over medium heat. Whisk in the flour and cook for 1 minute, stirring constantly. Gradually whisk in the milk until smooth. Add the green chilies, shredded cheese, chili powder, cumin, salt, and pepper. Cook over medium heat, stirring constantly, until the sauce thickens slightly, about 5 minutes.
Assemble the enchiladas: Preheat oven to 375°F (190°C). Pour about ½ cup of the enchilada sauce into the bottom of a 9x13 inch baking dish. Spoon about 2-3 tablespoons of the shrimp filling into each tortilla. Roll up tightly and place seam down in the baking dish.
Top and bake: Pour the remaining enchilada sauce over the enchiladas, ensuring they are all covered. Sprinkle with the remaining shredded cheese. Bake for 20-25 minutes, or until the cheese is melted and bubbly and the enchiladas are heated through.
Serve: Let the enchiladas cool slightly before serving.