It is defined to be so, presumably for the sake of convenience. Some people will tell you that it can be proven, but if it could be proven, it would be categorized as a theorem, not a definition. The common notion is that, since n!/n = (n-1)!, we can substitute 1 in for n and we can see that 0! is 1. The problem with this is that, if 0! is not assumed to be 1 (which is an assumption mathematicians do make), this rule will only hold for values of n that are equal to or greater than 2. To see why, let's look at the proof that n!/n = (n-1)!:
n!/n = n!/n | reflexive property
(n)(n-1)(n-2).../n = n!/n | definition of factorial
(n-1)(n-2)... = n!/n | cancelling the common factor of n
(n-1)! = n!/n | definition of factorial
Notice that, in order for n! to be described as (n)(n-1)(n-2)... and proceed to be rewritten as (n-1)! after the n's cancel, the natural number n had to be greater than some natural number for (n-1) to be a factor in the factorial. This means that n must be at least 2, because if n were 1, (n-1) would not have been a factor of the factorial, and the proof would fail unless we assume that n is at least 2. So now you know that this rule cannot prove that 0! is 1 because 1 cannot be substituted into the rule because, as it stands, the rule is only valid for values of 2 or greater. The rule is valid for values of 1 or greater if it is assumed that 0! is 1, but that is what you are trying to prove.