It is primarily a matter of register: "slay" is more formal, more old-fashioned than "kill".
It is also narrower in meaning. "To slay" implies that the death was intended, was probably violent, and that a weapon was usually used. It also implies hostility - you might slay your enemy, but the verb would not be used for accidentally killing a friend.