'zero' is not a number or quantity but a concept, a way of saying 'nothing's there'.
I owe you ten cows, I pay you ten cows, the result is that I don't have a debt anymore. But in nature '0' does not exist, it is a mathematical construct that we must deal with very carefully. It is invented to make the decimal system, a convenient and clever way for coding larger quantities than 9. The decimal system is nothing more than making groups of items, and we need the 0 there because every digit of any number bigger than 9 has to be filled otherwise the system won't work. So it's not a number but a symbol, a placeholder we need for the decimal system to work, to say 'no items at this position'. That's why it was invented as long as 5000 years ago. It used to be just a dot back then.
But even though it 'behaves' like a number in our perception and calculations, that does not mean it IS an actual number.
(Same goes for negative values, they don't exist either. Every value in nature is positive, we only use the minus sign to indicate in which direction the transaction is going (from me to you or from you to me), the current is flowing, the object is moving, etc. By introducing negative numbers the way they are, mathematicians have made a fundamental error because now we need imaginary numbers to deal with negative values being squared turning up to be positive values. And that's ludicrous because a car driving with a speed +2 will have a speed of +4 when we square it, but the same car going in the opposite direction (with a speed of -2) would suddenly turn around and travel in the opposite direction with a speed of +4! Try that in real life! So that's why we need the imaginary hack here.)
The zero is notorious for introducing infinities in calculations. But is there is an infinity in a calculation, mathematicians should realize that there is a fundamental error in the calculation. So 0! is a invalid statement because it is neither a 'number' nor a quantity nor a integer let alone a positive integer. period.