Built-in Timer Module HCS12
Because the timer works asynchronously to the program.  With a timer you can set up a periodic interrupt that always happens on time, regardless of what code is running -- if you tried to do that with assembly language loops or whatnot you'd always be chasing any changes in the code to change the timing of the loops.