(rewrote the answer to focus on modifying the \tnote
macro)
Quoting from page 1 of the user guide of the threeparttable package:
There is nothing automatic about the notes.
For your use case, though, obtaining the desired formatting, viz., surrounding the arguments of \tnote
to be surrounded by square brackets automatically, is actually not too difficult, since it "only" requires hacking the \tnote
macro itself. The package's definition of \tnote
is as follows:
\def\tnote#1{\protect\TPToverlap{\textsuperscript{\TPTtagStyle{#1}}}}
To obtain your desired format, overwrite it via
\def\tnote#1{\protect\TPToverlap{\textsuperscript{[\TPTtagStyle{#1}]}}}
Can you spot the difference?

\documentclass{article}
\usepackage[para,flushleft]{threeparttable}
\def\tnote#1{\protect\TPToverlap{\textsuperscript{[\TPTtagStyle{#1}]}}}
\usepackage{booktabs,array}
\begin{document}
\begin{table}
\sffamily % optional
\centering
\begin{threeparttable}
\caption{Solvent screening}
\begin{tabular}{@{} *{3}{w{l}{1in}} @{}}
\toprule
entry\tnote{a} & ee\tnote{b} & conv.\tnote{c} \\
\bottomrule
\end{tabular}
\smallskip
\footnotesize
\begin{tablenotes}
\item[a] Note one \item[b] Note two \item[c] Note three
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}