I’m not familiar with Nushell and was just looking, but the first difference is indeed that one seems a more featureful shell replacement, while osquery is an agent to do system monitoring and interrogation, with (mostly) pre-determined queries to the tables it already supports, storing that data locally or sending it to one of the supported backends.
The table and SQL part is a way to represent that data and further manipulate it before storing it in log form.
Osquery has a shell mode, but is just meant to give you an interactive way of querying those tables, instead of having to write a configure file, launch the daemon in the background, wait for the scheduler to run your query, and finally read the results in a log file.
Some of the information/data extraction capabilities of osquery can obviously simulated using scripts and system commands, which would be more flexible in a way but would require more maintenance.