You configured the regular expression in your URL but didn't specify the parameter name that will be sent to your view function.
The following URL definition should work. Notice that the ?P part that is used to define the parameter that will capture the value matching the regular expression.
re_path(r'^time/plus/(?P<offset>\d{1,2})/$', hours_ahead)
Note 1: that if you're not really strict on the amount of hours that can be added, you can use simpler URL definition that just specifies an integer:
path('time/plus/<int:offset>/$', hours_ahead)
But that will allow a caller of your URL to add a huge amount of hours, as long as it fits the integer.
Note 2: Not really your question but if you think about correct API / interface design this can be important: what you're doing is an action, adding hours. That action is now triggered by an HTTP GET request. Actions should always be triggered by other HTTP methods such as POST, PATCH, etc.