Well, internal timers are usually handier (that's why we have -u in various commands, as lori pointed out) but another, perhaps more important, difference is that /timers are quite often stopped by the user. I've found myself doing /timers off, to stop a timer gone haywire and flooding my Status, for example. Of course, internal timers can still be stopped in most cases (heck, one could even do a /sockclose *) but /timers off happens far more often, I think. This unpredictable stopping of /timers has always been bothering me in scripts (for example, I use the on active event to check for and restart timers).