Estimate population mean from sample with known distribution My sample size is around 100k - should be enough for CLT to work.
One intuitive approach is to estimate population mean by sample mean y.
However, after plotting the sample data, I notice the distribution is definitively a delta-lognormal distribution, with P(Y>0)=99% and X={lnY|Y>0} being normally distributed with parameters u and sigma.
Please note that Y=0 really means zero value. ( not out of detection)
Given Y conforms to a delta-lognormal distribution, E(Y)=P(Y>0)exp(u+0.5sigma^2).
Here is the problem: two approaches give different results - completely different. Is there anything missing in the calculation?

If you have $n=100000$ sample values then the two methods should give you estimated values that are very close to one another.  Since you haven't supplied your calculations I cannot say what went wrong, but here is the correct way to do it.
#Generate lognormal data
set.seed(1)
n    <- 10^6
DATA <- rlnorm(n)

#Compute and print the sample mean
mean(DATA)
[1] 1.64861

#Compute the MLE of the distribution mean 
MLE <- fitdistrplus::mledist(DATA, distr = 'lnorm', lower = 0)
MLE.mu    <- MLE$estimate[1]
MLE.sigma <- MLE$estimate[2]
MLE.mean  <- unname(exp(MLE.mu + 0.5*MLE.sigma^2))
MLE.mean
[1] 1.649103

As you can see, these two estimates of the mean of the distribution are quite close to each other.  (The true mean is $\exp(0.5) = 1.648721$ in this case.)  As a general rule, if you have the choice of a non-parametric estimator like the sample mean, versus a parametric estimator like the MLE, with lots of data, you should prefer the non-parametric estimator, since it is robust to violations of your assumptions.  In the present case this means it is generally preferable to use the sample mean, since this estimator is robust to misspecification of the distribution.
