Yes you control data on-prem. And also have more control over compute.
An example: I used an application that ran multiple components in a cluster. It was very sensitive to the multi-second compute 'gaps' that occur when its hosting VMs were automatically moved around 'live' from one blade to another by VMWare's 'VMotion' feature. (Effectively, this pauses a VM, moves it to another blade, then presses 'Play'). Some application components lost cluster synchronisation
Back in the on-premise VMware days I could sit down with our storage/VM admin guy and explain out constraint. He made the concerned VMs sticky to a blade. That way the 'VMotion' hardware load balancing would leave the problematic VMs alone and not shuffle them around when compute load was oversubscribed. Once a year or so, VMWare compute had planned maintenance. But we had months of notice about that. We had control.
That's not a possibility with compute in Azure cloud. With it's 'Freeze' and 'LiveMigration' events, compute 'gaps' are unavoidable and effectively unpredictable.