Why do we give commands names? To indicate, ideally as clearly as possible, what it is that they do.
If you have two things that do very similar things, it makes sense to give them very similar names. On the other hand, if they do one thing significantly differently, you would like to be able to easily tell the two names apart, despite those names being similar. As an asterisk is a non-alphabetical character, and fairly dense, it stands out. It is therefore a reasonable way to modify the name of one command, to obtain a similar but easily distinguished command name.
But no, there isn't anything which all starred variants have in common. The command
\newtheorem*, and the
align* are un-numbered variants of their un-starred cousins. However:
\newcommand* creates a macro which will not accept carriage returns in any of its arguments.
\vspace* adds vertical space which will not be suppressed at the beginning or end of a page.
\\* creates a new line which will not cause a page break.
amsmath) allows you to add a visual label, comment, or other number-replacement for an equation, without the usual parentheses.
There is a bit of a theme of negation here, but it's not clear that these negations are of anything in common (aside, trivially, from "default" behaviours).