This is expected behavior like mentioned in Documentation and tutorials. You need wrap the PickAsync() call inside a try Catch Block.
try
{
await Filepicker.PickAysnc()
}
catch(Exception ex)
{
//Do stuff if user cancels picker
}