Sometimes the puppies are free, but in most cases there is a fee for the adoption; this fee covers the cost of vaccinations, spays and neuters, and operating expenses that help to keep the shelter afloat and keep the pets in it happy and healthy.
You can find out more about this by calling your local animal shelter.