Your alias returns $true for almost everyone in the channel, including those who don't have the power to ban someone. So, for everyone except for someone who has only the +h halfop status, it returns $true, which causes your alias to display the message and halt.
If you want MEOP to return true if someone has the power to ban someone, which is everyone except voices and those with no status:
alias meop { if ($nick($1,$me,a,rv) return $true }
and then your if statement becomes:
alias kb {
//echo -a if (!$meop($chan)) { .echo -st 0,4 No Se puede echar | halt }
mode # +b ~q: $+ $1
}