It's because '구' in "누구" doesn't have a final consonant.
e.g.
선생님 + 이(다) + 시 + 어요
☞ 선생님 + 이 + 시 + 어요 ☞ 선생님이세요? ("세요" is short for "시어요")
('님' has the final consonant 'ㅁ', so '이' added before "세요")
You can say either "누구세요?" or "누구십니까?" without '이'.
\^o^/