Both Drush and Drupal Console will load files from the Drupal installation and bootstrap the application. This allows the commands to invoke functions and methods found in Drupal.
For Drush 8.x, Drush does not implement the dependency injection container and still needs to rely on procedural functions in Drupal.
Drupal Console, however, harnesses the dependency injection container, allowing it to reuse Drupal's container and services.
The Making a Drush command and Making a Drupal Console command recipes will describe the differences in more detail.