Every test has a set of assumptions built into it, which it relies on in order to be effective within its boundaries. For example, if you are testing something that relies on access to a database, your test might make the assumption that the database is up and running (because some other test has already checked that that part of the code works).
If the database is not up and running, then the test neither passes nor fails – it instead provides you no knowledge at all. This tells us that:
All tests have at least three results – pass, fail, and unknown.
Tests with an "unknown" result must not say that they failed – otherwise they are claiming to give us knowledge when in fact they are not.