You are correct, both have the same functionality of syncing app store receipts with our SDK, but have different use cases.
The use case of restorePurchases is for users to use when they need to get access to their purchases if they delete the app. See here for more details on the usage of this:
The use case of syncPurchases would be to trigger a sync once per subscriber programmatically the first time they open a version of your app containing RevenueCat. You should not call this programmatically on every app launch for every user as this can increase latency in your app and can unintentionally alias users together.