It would be a lot easier to teach CS to 18 year olds if they had stronger foundations in algebra, logic, and abstractions.
When "teach a bunch of freshmen to program" is your mission statement then it's perfectly understandable to prefer the students with solid fundamentals.
No, it's not. Sorry to be blunt, but it seems colleges want more and more of their students.
Already know how to program and have several jobs under your belt to prove it? Step right in, of course we'll accept you over the schmuck who wasted his high school drawing or playing music.
It angers me that what is primarily an educational institution insists on having their students pre-educated. You'd ideally want your students to have solid fundamentals, yes. But the reality is that most of them don't, and casting away those kids is the easy way out. I listened to a talk by a dean of one of the best technical schools in Turkey, and he said, "we spend your first year erasing all the junk put into your brain in highschool, and re-teach you the fundamentals". I think this is the better way.
That sounds a lot like General Education requirements in college in the US. You can avoid taking many of them if you test well enough, but otherwise they're pretty much bringing everyone up to a highschool level, because some didn't take that class or simply don't remember it well enough.
Stated another way, it's perfectly understandable that a large percentage of incoming undergrad students can't program at all, when their education up to that point has failed to introduce them algebra and higher mathematics, logic, or reducing complexity through abstraction.
When "teach a bunch of freshmen to program" is your mission statement then it's perfectly understandable to prefer the students with solid fundamentals.