Why is "zero" followed by a plural noun?
Substitute the word "any" in the place of zero and it makes sense. Instead of saying "I have zero books." you are saying "I do not have any books."
In this construction, the plural is not referring to the zero-quantity of books you have, but instead refers to a (vague and undefined) collection of books, none of which you have.
In English, only 1 is singular; the other numbers are plural.
This question was answered some years ago, but it was answered too simplistically.
Zero (the absence of value) is intrinsically partitive, which means the word it modifies must be expressed in its partitive form.
It may seem upside-down and backward to consider "zero" to be partitive, but it is. It can be thought of as, "an infinite amount of nothing" or, in other words, you do not know what value could be represented if it were not zero. Whenever there is ambiguity, the word is partitive. It may seem counterintuitive to think of zero as ambiguous, but linguistically (and if you'll forgive the religious reference), "only God can know if there's really nothing there."
My best example? "The cup is empty." Even in the vacuum of space the sentence is factually false (there are particles in the cup), despite being contextually true (but none of them are water).
Linguistic precision is the playground of lawyers. Even scientists don't care, and needn't care, to so great a degree. The law, however, is only expressible with language — and language is by its nature imprecise.
Most nouns take their partitive form by adding an "s."
I have zero books.
I have no books.
I haven't any books.
However, some words require additional context to understand their partitive construction. For example, the word "value." Are you talking about the value of a pound of flour? or the number of values assignable to a mathematical variable? or are you discussing human morals?
It has no value. (A pound of spoiled flour.)
None of the values are correct. (Mathematical variable assignments.)
He has no values. (Moral attributes.)
Likewise, from a comment to the question:
I have no tolerance for that. (The ability to withstand influence.)
No tolerances were specified. (The limits of applied influence.)
Therefore, as a general rule, the word following the number "zero" or the word "zero" must be partitive, and that explains why some words appear pluralized after the word "zero:" because they're in their partitive form.
The Curious Case of the Word "No."
Although I used examples with the word "no" (and similar constructions), it should be noted that the word "no" is NOT consistently and predictably synonymous with the number or word "zero." It's more flexible. Think of it this way: the number and word "zero" will always mean "the absence of all value," but the word "no" can mean "the absence of one."
Consider the following examples provided by @PeterShor:
The car had no driver.
The car had no drivers.
Both sentences are valid.
The first sentence makes no assumption about the number of people who could be available to drive the car. Indeed, you might use this sentence because you want to focus on a condition of the car: there is (generally speaking) only one driver's seat and one steering wheel. It can be said the car in this construction is more imporant than the availability of one or more drivers. Thus, in this construction, "no" means "the absence of one."
The second sentence does make an assumption about the number of people who could be available to drive the car. Indeed, you might use this sentence because you want to focus on the availability of a pool of drivers (such as the driving staff at a pizza delivery business) rather than on the fact the car isn't being driven. It can be said the availability of drivers is more important than the car in this sentence. Thus, in this construction, "no" means "the absence of many."
However, "zero" always means "the absence of everything" and therefore the modified word must always take the partitive form. Thus, "There were zero drivers" is correct and "There were zero driver" is wrong.
One is the only singular number, and even though zero is less than one it should still be used as a plural. “I have zero books.” is grammatically correct, while “I have zero book” is not. “I have one book” is correct because the number one is singular.