The docs say:
Data Matrix used in XGBoost. DMatrix is an internal data structure that is used by XGBoost, which is optimized for both memory efficiency and training speed. You can construct DMatrix from multiple different sources of data.
I get this bit but what's the difference/use of DMatrix instead of a Pandas Dataframe?
When using the XGBoost Python package you can choose between two different APIs to train your model. XGB's own Learning API and the Scikit-Learn API.
When using the Scikit-Learn API data is passed to the model as numpy array or pandas dataframes.
When using the Learning API data is passed using the DMatrix.
Have a look at the python examples, to see both APIs used.
Basically you already found the "use of DMatrix instead of a Pandas Dataframe" in the docs: It is a data structure the XGBoost developers created for "memory efficiency and training speed" with their machine learning library.