From the Shared Concepts section of the documentation:
In contrast to the linear functions that are constructed with the ESTIMATE statement, you do not specify coefficients for the individual parameter estimates. Instead, with the LSMESTIMATE statement you specify coefficients for the least squares means; these are then converted for you into estimable functions for the parameter estimates.
One could insert CONTRAST for ESTIMATE here.
There are some specifics to keep in mind. I would use a CONTRAST statement if I was comparing BLUPs for specific levels of random effects. However, it does not allow for the use of the AT option to get tests at specific values of a continuous covariate.
So, for me, an LSMESTIMATE statement provides a way to get a linear function of the lsmeans. That may be a contrast, or it could be an interesting function of any sort. Depending on the MODEL statement, it may be marginal or conditional with regards to the random effects.
Steve Denham