First, you aren't checking if the person is an op. Second, if you want it to kick on each channel the person is on, even if they aren't on all of them, then you do need to check each individually like you're doing. If you want to only kick if they are on all channels at once, then you can combine them.
That said, you *could* use a loop, but with only 4 channels, it really isn't any more efficient.
alias kickall {
var %channels = #chan1 #chan2 #chan3 #chan4, %t = $numtok(%channels,32)
while (%t) {
if ($1 ison $gettok(%channels,%t,32)) { kick $v2 $1 $2- }
dec %t
}
}