The MatchIt package manual says that:
The standardized mean differences are computed both before and after matching or subclassification as the difference in treatment group means divided by a standardization factor computed in the unmatched (original) sample. The standardization factor depends on the argument supplied toestimand in matchit(): for "ATT", it is the standard deviation in the treated group; for "ATC",it is the standard deviation in the control group; for "ATE", it is the square root of the average of the variances within each treatment group. The post-matching mean difference is computed with weighted means in the treatment groups using the matching or subclassification weights.
Why the denominator is just computed from unmatched sample? It is generally assumed that the standard deviation should be derived from the sample used to calculate mean and mean difference. That is to say, if the mean difference is the difference between treated and control group from matched samples, the denominator should be the pooled standard deviation of treated and control group from matched samples (square root of the average of the variances within each group from matched samples).