The reason the vaccine is not given at your doctor's office is because Medicare B does not cover it. Your doctor's office bills Medicare B for services and other vaccines like flu, and Hepatitis B. The shingles vaccine is covered by Medicare D, which is the coverage for your prescription drugs. If you don't have Medicare D, then you would have to pay for the vaccine privately.
If you do have Medicare D, the coverage is still tricky. Your doctor's office has to be set up to be able to bill Medicare D for you in connection with your pharmacy that supplies your medications under your Medicare D health plan. Some doctor's offices are probably either not set up for this, or don't want to deal with the extra paperwork. So, your friends may have a doctor's office that is willing to do the extra billing procedures, or they will later get a bill for the vaccine that they will have to pay for out-of-pocket.
If you do have aMedicare D plan, you can get the vaccine at the pharmacy you deal with, and the pharmacist is allowed to administer it unless you live in the state of Maine.
It is very confusing. Here is a link to Does Medicare pay for the Shingles shot? from AARP's Bulletin News.