If it's their property, they have a right to set whatever conditions they want to set. Just like you can decide to let someone in your house with a gun, or not.
That said, many businesses set their policy based on what their insurance requires. That's what drives many employers. If there is a shooting on the property, an attorney can make an argument, stupid though it may be, that a sign would have kept the bad guys away. More realistically, if you accidentally shot an innocent bystander, the family would come after you but also Dick's deeper pockets. A sign gives them an argument to make in court that they don't share your liability.
With all that said, I don't even look for signs at large stores.