I started out in Java. It really got me into programming - I could make all these pretty little windows and graphics and do everything else quickly and easily. But, as I later found out, at the expense of that ease came my knowledge.
Example: The ArrayList class. It's a dynamic array. The LinkedList class. It's a linked list. They're fundamentally different. But in Java, they look and act pretty much the same, and they're already available in the standard library. The learning programmer doesn't need to know how they work or anything.
Same thing with memory. In Java, you get no feel for what memory is being used, or how it's being managed. In C, you're the master (and the slave), and you yourself have to manage and take care of memory and pointers. It tells you much more about how computers actually WORK when you're programming in C.
In summary, Java just gives you too much. It hides you from the raw details. This is great for a production purpose language - but for a teaching language, what could POSSIBLY be worse, when the intent is to reveal and NOT hide all the small details?