Is there a lightningd equivalent to bitcoind's -walletnotify or -blocknotify? I'm looking at the docs, and I see they have lightning-notifications, but it looks like you can't configure where they go, and you can't trigger a shell script with them. Does this mean I have to have all notifications sent to a shell script and filter them, or is there a method/configuration I'm overlooking?
You can trigger a shell script with them, and more.
This is related to the plugin functionalities provided by lightningd and not bitcoind.
lightningd allows you to run plugins to deeply modify its behaviour, or extend its possibilities. It idiomatically (small and robust core, customizable functionalities) relies a lot on them and therefore directed the event mechanisms toward them as well.
This is the reason why you don't see [*]notify= startup options for lightningd.
To use lightningd's notifications you have to write a plugin, but it can be a pretty simple script. For example, here is the handler of the invoice_payment notification in the HelloWorld showcase plugin:
@plugin.subscribe(&quot;invoice_payment&quot;)
def on_payment(plugin, invoice_payment, **kwargs):
    plugin.log(&quot;Received invoice_payment event for label {label}, preimage {preimage},&quot;
               &quot; and amount of {msat}&quot;.format(**invoice_payment))

The previous example used the Python library, but the communication is pretty straightforward (JSONRPC 2.0) so you can technically use a shell script :-).
For reference, there is an available and curated list of community plugins.