Why are fossils rare?
Fossils are rare because certain conditions are needed to preserve an organism in order for it to fossilize, and those conditions themselves are rare.
Whatever is being fossilized must first not be eaten or destroyed. Most bodies are consumed by other animals or they decompose. Erosion and other natural processes must also not destroy the organism. The organism needs to undergo a rapid burial so that it is not disturbed, and this is very rare.
The bones or shells may then undergo perimineralization, in which minerals enter tiny pores in the bone and, with enough pressure, a solid is formed. Other times the organism itself may be destroyed but a mold is left behind in the rock. If an organism is incredibly lucky, it may be preserved like this baby mammoth found a few years ago or perhaps the organism will be encased in amber.
Fossils are rare because most remains are consumed or destroyed soon after death. Even if bones are buried, they then must remain buried and be replaced with minerals. If an animal is frozen like the baby mammoth mentioned above, again the animal must remain undisturbed for many years before found.
Here's a good link with extensive information about fossils, the different types, the processes that preserve soft body parts, and more.
Here's another link from BBC's Nature that is less extensive but still very informative.