How to programmatically create an exposed filter?
Can you please try with hook_views_default_views_alter function. This function should be defined in MODULE_NAME/views/MODULE_NAME.views.inc file. And don't forget to include this file on .info file as files[] = views/MODULE_NAME.views.inc.

 function MODULE_NAME_views_default_views_alter(&amp;$views) {
        if (array_key_exists('MY_VIEW_NAME', $views)) {
          $options = array(
          0 =&gt; 'Blocked',
          1 =&gt; 'Active',
          ); 
          $display = $views['MY_VIEW_NAME']-&gt;display['MY_VIEW_PAGE'];
          $display-&gt;display_options['filters']['field_status']['id'] = 'field_status';
          $display-&gt;display_options['filters']['field_status']['table'] = 'field_data_field_status';
          $display-&gt;display_options['filters']['field_status']['field'] = 'field_status';
          $display-&gt;display_options['filters']['field_status']['value'] = $options;
          $display-&gt;display_options['filters']['field_status']['exposed'] = TRUE;
          $display-&gt;display_options['filters']['field_status']['expose']['operator_id'] = 'field_status_value';
          $display-&gt;display_options['filters']['field_status']['expose']['label'] = 'Status';
          $display-&gt;display_options['filters']['field_status']['expose']['operator'] = 'field_status_value';
          $display-&gt;display_options['filters']['field_status']['expose']['identifier'] = 'field_status';
          $views['MY_VIEW_NAME']-&gt;display['MY_VIEW_PAGE'] = $display;
          }
    }