Quite simply, it's the fat content.
Whole milk or "full-fat" milk is 3.25% fat by weight. Heavy cream is 36-40% fat by weight. These two products are at opposite ends of the fat spectrum, and there's very little difference between 1% and 3% when it comes to an item such as caramel sauce, for which the optimal ratio is about 50% fat. (A little butter can boost the fat content from 40% to 50%).
You might be able to substitute standard/single cream (18-20%) or maybe even coffee cream/half-and-half (10%), but any lower than that and you're just making sugary milk.
Other alternatives to (possibly) get it thicker:
Use (much) less milk; I'd advise not attempting a direct substitution, just find a recipe based on milk. Even the best milk-based caramel sauce will still be substantially runnier and/or grittier than a cream-based sauce.
Considering that butter is 80% fat and homo milk is 3.25%, you could use a mixture of (approximately) half milk and half butter that would emulate the fat content of heavy cream. I've never tried this personally, and I suspect that the flavour might be a little off, but at least it would be closer to the expected texture.
Try a reduction (simmer off the water in the milk). You'll be simmering a long time, and you'll have to watch it very carefully to make sure it doesn't burn, and you'll probably have a nasty stuck-on mess to clean up in the pan afterward, but it will thicken.