Though I have no doubt that one can sometimes find good, inexpensive fish at Petco or Petsmart, I never buy fish there for three reasons.
One - Altogether, big box pet stores must cycle through unthinkable numbers of fish. They're like a giant meatgrinder for these little creatures. The mass production necessary to supply this market, and the massive casualties that come from it, seem disrespectful to the fish. Just sayin'
Two - your local fish store needs your business. Somebody is trying to make a real living doing something they enjoy in your community. Help them out if you can. You benefit from their expertise and advice, and sometimes this is in short supply at Petsmart / Petco.
Three - money you spend at your LFS stays in your community and helps grow businesses. This is a good thing for your local town, and helps keep taxes down, and employment and services up.
OK, I'm off my soapbox
I know finances dictate that not everyone can afford to shop at a local fish shop. I have a reasonable job, and I often can't afford to shop locally. ($32 for eco-complete at the local LFS versus $23 online - c'mon, I can't pay that kind of markup)
I do try to hit the LFS for supplies and fish any time it's feasible, though.