1) it costs the bank money to transport money (notes and coins) to and from branches.
2) they don't want to get involved in anything that may be linked to money laundering, and if you don't have an account with them they don't know that you aren't involved.
Maybe the bank doesn't want to keep its own customers waiting while it helps out a non-customer. What would be needed would be for all banks to agree to help customers of other banks.