Programatically add module block to dashboard
It can be done in a simple way by mentioning a region key to the $blocks array in the HOOK_block_info(). Follow the code for reference, 

    /**
     * Implements hook_block_info()
     * @return array
     */
    function my_module_block_info() {
      $blocks = array();
      $blocks['leaderboard'] = array(
        'info' =&gt; t('Leaderboard'),
        'status' =&gt; 1,
        'region' =&gt; 'dashboard_main',
        'weight' =&gt; 99,
        'cache' =&gt; DRUPAL_CACHE_PER_ROLE,
      );

      return $blocks;
    }