Both methods assume classes are normally distributed.
Some estimators like logistic regression are available in both StatsModels and scikit-learn.
Scikit-learn offers a uniform interface.
StatsModels offers statistical analysis of the results, including a convenient summary method. (Although the name of the summary method may change names for different modeling methods…)
Scikit-learn does not offer statistical analysis tools like p-values for coefficients, and even getting the coefficients themselves is not “official” from the API.
Estimators like KNN, LDA, and QDA are only available from scikit-learn.
Use StatsModels when you want access to statistical information about the underlying model, like p-values for coefficients.
Use scikit-learn for the benefit of a consistent interface across different models, or do not care about low-level details from the model - for example when bootstrapping or doing cross validation.