So if you are present (not usually the case if you are a dog walker, but often the case if you are a cleaner and probably always the case if you are a music teacher) you ask that they do the cash transfer immediately and you wait while they do it, in the same way that you would hang around while they fumbled in their purse for cash. Obviously if they offer cash, that's fine. But anyone insisting on it would arouse suspicion in me.
In the case of something like a music lesson or a house clean which is likely to be weekly or fortnightly, you could ask for 50% upfront as standard policy before you even turn up. In the case of tutoring or music lessons you could even ask for the whole amount upfront, before the session even starts. If you explain to new clients why you have this policy they will understand. If they don't, don't take them on.
In the case of daily dog walks it makes sense to have a system where you pay per week or per month, but you pay at least part of it up front, to avoid building up a large bill that people may then avoid paying. People want and need their dogs walked. They know if they don't pay up regularly then you simply don't turn up until they do. If those are your standard terms then people need to accept them. Most reasonable people will understand the need for such terms. What you don't do, is keep giving people the benefit of the doubt until they owe you a ton of money that you will never get back without taking legal action.
In the case of daily dog walks, asking for payment daily is really impractical so I imagine they are billing clients weekly anyway. In that case, whether it's cash or bank transfer they accept, the risk of non-payment for services already rendered is the SAME either way.
As a dog walker, the most you should ever stand to lose from a determined non-payer is a bill for one week, which probably amounts to only 5 dog walks or maybe ten if you visit twice a day, assuming they use you 5 days a week. Realistically it probably amounts to no more than 5 to 8 hours of work per week, per client. It's not a fortune. Simply don't go again until they have paid their outstanding bill and make it clear that this is what will happen every single time they pay late. Anyone who has a dog who needs to go to the loo while they are out at work all day is not going to not pay you for weeks on end unless you let them.
I don't understand why it's okay to ask for cash on the spot to avoid non-payment but not okay to ask for an immediate bank transfer, either on the spot or in advance to avoid non-payment. You are required to be assertive and inflexible about your requirements either way.
I'm not saying you shouldn't be taking cash at all. I'm saying that most people will be immediately suspicious if you insist on it, and they are probably right to be. Especially if you insist on it even when it's not payable on the spot, which negates some of the arguments for asking for it in the first place. For example a window cleaner who will turn up at random times when you are not home, then come around at a later date, sometimes collecting several cleans-worth at once. A regular standing order or a text saying 'cleaned your windows today, please remit by bank transfer' would be far more practical and efficient. If he's not doing that but chosing to text ahead saying 'I'll be around this evening for my £50, please have the cash ready' then there's a reason. If he drives around to see people face to face to ensure prompt payment, then he could just as easily accept a bank transfer while he's standing on your doorstep. If he's reluctant to do that there's a reason. Payment is welcome in any form for most of us who aren't on the fiddle.