When this happens to me, it's usually one of the following:
- try "zoom to content" on the layer, to adjust your bounding box
- check, if your CRS in QGIS matches the one, you load from the WMS
- try zooming in, as layers may have a styling rule to be only shown at a certain zoom level
EDIT:
Took a further look at the service and tried to get plain tiles but that didn't work:
By KVP params:
http://geoappext.nrcan.gc.ca/arcgis/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer/WMTS?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&Layer=BaseMaps_CBME_CBCE_HS_RO_3978&Style=default&Format=image/png&TileMatrixSet=default028mm&TileMatrix=16&TileRow=1000&TileCol=1000
By tile index:
http://geoappext.nrcan.gc.ca/arcgis/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer/WMTS/tile/1.0.0/BaseMaps_CBME_CBCE_HS_RO_3978/default/default028mm/16/1000/1000.jpg
It just gives empty tiles. Maybe it's about the service provider in this case.
EDIT:
Somehow, the tileindex seems to be messed up.
I had a look at the tiles, your esri web application uses. You could check it by using developer tools in your browser (F12). One sample tile is
http://geoappext.nrcan.gc.ca/arcgis/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer/tile/17/32151/28699
You also get it from the service with the KVP-syntax:
http://geoappext.nrcan.gc.ca/arcgis/rest/services/BaseMaps/CBME_CBCE_HS_RO_3978/MapServer/WMTS?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&Layer=BaseMaps_CBME_CBCE_HS_RO_3978&Style=default&Format=image/jpeg&TileMatrixSet=default028mm&TileMatrix=17&TileRow=32151&TileCol=28699
But if you compare this with the tile indices, given in the capabilities document, those tiles are way out of the given tile matrix bounds, which is Columns: 5140
Rows: 4717
for matrix level 17