It's been said here before, but university CS programs tend to expect the most crystallized knowledge of incoming students of any program. I did not code in my free time in high school nor did I have formal CS education in high school, and I always felt that my university CS courses weren't designed for me. They were designed primarily for the student who self-taught during high school.
As to why this is, I think it's the path of least resistance for the teaching staff and it seems to work so why change it?