"- the keychain is device specific (not synced across devices), so the trial period would be separate for each device?"
YES. You could also use the user's iCloud account and write to their key-value file
"- reinstalling the app won't modify the keychain, so the user cannot gain another trial period by reinstalling the app?"
CORRECT. But the user could restore their entire device to a time before they first ran your app. The alternative approach using the user's iCloud account can't be restored so it avoids this flaw. However the user may log out of their iCloud account and log into a different iCloud account.
"- restoring the device would reset the keychain, so by doing this (tedious task), the user could gain another trial period?"
OH - you realized this! YES, this is a way of getting another trial period at some considerable pain to the user.