They are a little different in how the "differences" are presented to you.
Let's suppose that the last commit added
And the commit before that added:
git diff HEAD~2 HEAD will show those lines with plusses (things that were added), whereas
git diff HEAD HEAD~1 will show those lines with minuses (things that were removed).
i.e. "what changed to get from HEAD~2 to HEAD" or "what would change if we started at HEAD and went back to HEAD~2"