Teaching courses at the college level has taught me that one teaching style does not fit all students. In a college course environment, however, an instructor cannot always stop in the middle of a class to re-frame a lesson to suit the students who just aren't getting the topic. With one-on-one tutoring or even small group tutoring, a tutor has the opportunity to present a topic, check if the student(s) "get it", and if not, try a different approach to the topic on the spot. Tutoring means not going strictly by a syllabus but instead meeting the needs of the student, varying the material and teaching approach as appropriate.
Like many other subjects, computer programming invites a variety of approaches to learning. It can be formal, hands-on, puzzle solving, problem solving, or exploratory. Different topics in programming are best suited to particular approaches. For instance, loops are best taught hands-on with plenty of examples to understand their mechanics. However, any approach can be used to in order to satisfy the style that is best suited to the student. This flexibility is what makes tutoring a fun and effective way to teach and learn.