There is a lot of good info for you in the previous answers to your question. A large number of baby name books and sites use "pop meanings," not accurate etymology. Furthermore, the same set of letters/sounds can have a wildly different meaning in different languages, and some sets of letters are used popularly as names in multiple cultures, hence the variance in meanings often cited.
Another reason: Some names have taken on associative meanings, either because those associations are more attractive than the true etymological origin, or because of the influence of a particular entity.
1. Caleb - This name means "dog" in Hebrew. As dogs are seen as loyal and brave, one will often see the "meaning" for Caleb listed as "brave" or "loyal," because that is more flattering in most people's minds than "dog."
2. Veronica - This name comes from the Greek Berenike, "bringing victory." However, the early Christian church ascribed it an alternate meaning to coincide with the Latin phrase "vera iconica," or "true image," because that happened to be perfectly apt for their purposes of supporting the story of Veronica, the woman who is said to have wiped Jesus' brow and come away with his image transferred to the cloth, known as the Shroud of Turin.
Also: Some names will have more than one meaning, simply because experts disagree on the origin or because there are multiple possibilities of where a name may have come from, and people probably chose the name originally for either/or of those meanings/associations.