One big reason is sandboxing - the native dialogs can view the entire filesystem hierarchy and automatically grant access to selected resources to the calling app. Non-native dialogs are restricted to whatever the app has access to, which means you often have to give the apps Full Disk Access to make them work properly.
Good point. I forgot that I had to do that...