Because as stated in the original post, if a user has been op'd and voiced, it will trigger twice because both if statements return $true.
if ($nick isop $chan) { } ;this will return true because they're an op
if ($nick isvo $chan) { } ;this will return true because they were voiced either before or after being op'd