Is there a standard way to retrieve Time-of-day from a "dongle" connected to a computer over USB?
Not that I'm aware of, and a quick scroll through USB device classes brings up nothing.
I would like to get TOD w/o software on computer and am not sure how this is typically done.
You would need some time source – NTP if you have internet connectivity, or you need to have GPS receiver, or you could have a time-standard receiver (in central Europe, that'd be DCF77). Anyways, nothing that cares about whether it's connected via USB.
I understand I'm out of luck if the user connects my device to a power-brick, but if to a computer, how's the best way to grab the time?
You're conflating things here. A computer is not a USB device, it's a host. Your device can't "query" the computer – it needs the computer to query it to be able to respond. So, that computer would need a driver for your device. To get the computer time to your device, you need that driver (or a program using that driver) to update the device time from the computer.
So, I think what you want is plain impossible.
My IoT device is…
(emphasis mine)
Your Internet of Things device probably has an internet connection, so it can use the internet to query time (e.g., via NTP, but if you can live with a bit of uncertainty / inaccuracy, also via other methods like reading a HTTP response's date:
header. Either way, the device would need to know the time zone it is in (that does not automatically follow from e.g. its IP address, at all), and how to convert a UTC time to its own timezone, if you need time stamps to be in local time. (if this is just about logs, you don't.)
Since the A in "Internet of Things" stands for "naming Accuracy", it might be that your IoT device is just part of some network where it's individually addressable. No problem – just propagate time information through that network. Quite likely, that is already implemented in some form if that is a wide-area wireless network.