Preheat oven to 400°F.
Cook bacon in a large cast-iron skillet over medium heat until crisp, 5 to 7 minutes. Remove from heat and transfer the bacon to a paper-towel-lined plate, leaving the bacon fat in the pan. Crumble the bacon when cool enough to handle.
Add oil, Brussels sprouts, onion, salt and pepper to the skillet and toss to coat. Transfer to the oven and roast, stirring once, until almost tender, about 20 minutes.
Meanwhile, whisk milk and cream cheese together in a measuring cup until mostly smooth. Add Cheddar, garlic and cornstarch; stir until combined. Pour over the roasted vegetables and stir to coat. Cover and bake until the Brussels sprouts are tender and the sauce is hot and thickened, 15 minutes more. Stir and sprinkle with the reserved bacon before serving.