There is a massive difference between "unethical business" and "illegal business". As banks provide critical infrastructure, they should absolutely not be allowed to refuse business they consider "unethical", just like a power company should not be allowed to cut someone off because they think they are behaving "unethically".
As to "illegal business", the simple fact is that the bank doesn't know enough to make a meaningful distinction. It is simply impossible for a bank to know for a fact what a payment is for. They only know the source account, the destination account, the payment value, and a user-provided description. That's just not enough data to make a decent judgement. Plenty of jokers out there who will label their rent transaction as "extortion payment", after all.
Sure, if they have reasonable suspicion they should forward the information to the police, but they should not be allowed to block it unless given a court order.