Why do we say "Jack Shit" to mean "nothing at all"?
I guess your question is more about the jack part.
In English a jack is by-name for a common person.
In British English, jack is a very old (13th century) term to designate the average peasant - the man at the bottom of the social pyramid. See for instance colloquial expressions such as "every man jack".
In that sense it comes from Old French "jacques" which has the same meaning - "Jacques" being a very common first name in medieval France at the time. The revolt of the French peasantry during the Hundred Years' War was famously called the "Jacquerie" because the jacques were all in arms and busy burning castles.
It also gave English the word "jacket" that was then adopted back in French as "jaquette" (the lost "c" and the meaning of a typically classy suit is a tell-tale sign it does not come directly from Old French).
During the British naval supremacy period, jack was also used to designate the average seaman.
The word must have somehow passed into American English. See for instance "lumberjack" for "lumberman".
So in addition to the word "shit" symbol of something of little value, the use of jack here reinforces that meaning by referring to an average fellow of supposedly low level of sophistication or knowledge.
Another very close way to see things is that "jack-sth" is used to denote a smaller version of this something. The OED says:
applied to things of smaller than the normal size; [...] jack-bowl, jack-brick, jack-fish"
So you get the idea: a jack shit is of even less value than a regular-size one (who can claim now that EL&U is not an instructive forum ?).
To redeem myself, let me just mention one of the proposed etymologies of the name "Union Jack" (quoted from the OED) as this is a related matter:
"A ship's flag of smaller size than the ensign, used at sea as a signal, or as a mark of distinction; spec. the small flag which is flown from the jack-staff at the bow of a vessel (formerly at the sprit-sail topmast head), and by which the nationality of a ship is indicated, as in British jack, Dutch jack, French jack. In British use the jack has been since the 17th c. (except under the Commonwealth) a small sized ‘Union Flag’ of the period (Union Jack), which has also been, since 1707, inserted in the upper canton of the ensign; hence, the name ‘union jack’ is often improperly applied to the union flag itself, when this is not carried or used as a jack. Every maritime nation has a jack of its own; this is usually, either as in Great Britain, †the German Empire, Sweden, and the United States, the same as the canton of the ensign, or, as in France and the Netherlands, identical with the ensign, only smaller". (Prof. J. K. Laughton.)
The term "jack shit" has been around for ages. The term is a corruption of a phrase used in the British Navy. "He doesn't know jacks from sheets." Where "jacks" were flags or small sails and "sheets" were larger sails. It's not that big a step from describing a novice sailor as "not knowing jacks from sheets" to "not knowing jack shit."
(Expanded from @mickeyf and @Callithumpian's comments.)
Jack-shit is US slang dating to at least 1968, where it was used by S. Clay Wilson's "Captain Pissgums and His Pervert Pirates" in Zap Comix #3, published in San Francisco. See the final frame of page six:
CAN'T SEE JACK-SHIT OUT OF THIS EYE
"Jack shit" is a colloquial form of emphasis. That is, if you say either "you don't know jack" or "you don't know shit" you convey the same meaning. It's arguable whether one is more intense or threatening than the other; to my mind, that depends on context and setting. "You don't know jack shit" conveys greater force by doubling the final term.
Etymonline reports that Jack shit (to mean "nothing at all") has been attested by 1974, and it is American English slang.
It doesn't report for which reason Jack shit is used, and not, for example, Daniel shit.
There isn't probably any correlation, but Jack is a familiar form of the given name John, and john is a word that means toilet (the other meaning is "a prostitute's client").
In American English, jack is the informal short for jack shit, but in other contexts it also a short for jackrabbit.
Jack is also used in names of animals that are smaller than similar kinds (e.g. jacksnipe).