It's because it's already dead. The process is no longer running, so it doesn't make sense to kill it. The only reason it exists is because someone (the parent) may still want to read its status.
The parent process is responsible for calling wait() to remove the zombie from the process table.