First, CS is hard. Perhaps not from our point of view, us who practically grew up with a computer. But for the majority of people, it is. I notice that the students who tend to do well either have prior experience (if AP CS qualifies as that) or come from a background that emphasizes logic and abstraction (e.g. math, physics, philosophy). However, this rule of thumb fails for one group -- students who are willing to work hard, attend lecture, go to office hours, and are not afraid to ask for help from other students or GSIs. If we tried to persuade students to enroll by depicting CS as simple as making a peanut butter sandwich, I'd think we would be setting them up for disappointment -- somethings are just hard and boring, and you just have to get through it.
Second thing, a lot of college students are not willing to fail or take risks with their GPA. Maybe this has to do college admissions; often times I hear "at least you were smart enough to get into _______". The effect is that students are pressured to maintain an image of academic perfection. And the easiest way to do that is to only take courses you are comfortable with. When I tell my friends to at least take one CS course before graduating, the common response is "it's hard and I don't want to get a D" -- though that is rarely the case based on the public grade distributions.
The point is, CS is hard but doable. But hey, I got some of them to enroll in Data Science.