Are they necessarily competing concepts though?
I see them more as complementary, with different variants of nurseries that only collect results (including exceptions), whereas supervisors would be more suited for complex scenarios having support for limits on simultaneous execution, restarts and whatnot. So supervisors would be the choice for building the main loop of a web server, whereas a nursery would be the main choice during the actual execution of an incoming request (perhaps the program want to fetch a bunch of resources concurrently?).
What are your thoughts? It is very much possible that I miss some aspect of supervisors as I haven’t actually used erlang/elixir for anything.