I can't answer why: languages grow through culture and usage, so you can really only describe how they are used. (Prescriptivists will argue till they're blue in the face, but language evolves over time, and usage with it.)
Both "he has left" and "he left an hour ago" are correct in common usage. "He had left an hour ago" is also correct, if you're recounting events later on.
You can't use "has left" and then add a time period (e.g. "an hour ago" or "at three o'clock") after it. That's just not how English works. It's jarring to most native speakers' ears.