Preheat the oven to 375°F and lightly grease a 9x13 inch baking dish so the enchirito does not stick.
In a large skillet over medium heat, cook the ground beef, breaking it up with a spatula until browned and no pink remains, then drain excess fat.
Sprinkle in the taco seasoning and add the water, stirring until the meat is evenly coated and the sauce thickens slightly.
Stir in the refried beans and chopped onion until the mixture is creamy and well combined, then remove from the heat.
Spread a thin layer of enchilada sauce in the bottom of the prepared baking dish.
Place a flour tortilla on a flat surface, spoon some of the beef and bean mixture down the center, sprinkle with a little cheddar and Monterey Jack cheese, and roll up snugly.
Arrange the filled tortillas seam-side down in the baking dish and repeat with remaining tortillas and filling.
Pour the remaining enchilada sauce evenly over the tortillas, making sure they are well coated, then top with the remaining shredded cheese and black olives if using.
Bake for 20 to 25 minutes, or until the sauce is bubbling and the cheese is melted and lightly golden.
Let the enchirito casserole rest for 5 to 10 minutes, then slice and serve with sour cream, cilantro, and green onions on top.