I just had this happen recently and there was no warning. Perhaps it depends on the "level" of services you are using. My instance was just an "extra small" vm.
Back when we were using Azure heavily, the answer from the Azure team members I was talking to was that they had no mechanism to warn me when the machine was going to go down.
The primary workload we were running was video game servers. The server stores all state ephemerally in RAM tied to the process. When it goes down, that play session is over and all players are booted. This was just a constraint of the software that we had to live with.
What I was looking for was some kind of heads up so that I could at least try and take down the process gracefully, but that wasn't possible.
As said, this was a while ago. Hopefully the situation is now different.
It's monthly, however even that isn't really acceptable. So far I've been too lazy to figure out if one can setup the live migration stuff to act as workaround for this...not sure. It's definitely something they should at least address / give an official workaround for, or preferably just transparently handle it.