No one has to, there are 1000s of alternatives but some people chose to. Don't ask me why.
I, in fact, use Elixir serverless: I just send functions to my BEAM and it runs them for me.
I know (think) you're half joking, but I wonder if you could abuse the hot-reload system to injected your function (assuming you don't want to eval strings) into some "lambda" module and run it.