Because git diff by default checks differences between the staging area and your working copy. When you git add, your staging area matches your working copy and therefore diff reports no changes.
Adding the --cached flag tells diff to diff against HEAD.