I mostly roll on the table and tell players the target numbers.
Part of that is I don't want them to think I'm fucking with them if I roll really hot or really poorly. Sometimes the dice just want to spite the players, and I'm not going to unilaterally fudge it.
I've also taken to telling the players what the target number is before they roll. Part of that is because it feels bad at a player to be like "17!" And the dm goes "ooh sorry I was looking for an 18." I'm like, "were you, though? Or did you just want me to fail?"
But also I'm playing Fate now, where players have more clear tools for adjusting their rolls. "I'm gonna follow the guy, quietly, and see where he takes the package. Stealth? I rolled a... two. /looks at character sheet/. Ah, but I'm a Jaded Detective, I know a thing or two about being followed. How about I spend a fate point on that and bump it up?". That mechanic doesn't work as well if the targets or rolls are secret.