Is it possible to define a field as disabled on creation in field_create_instance?
No, fields don't have a 'disabled' setting by default.

You could however use hook_field_access to restrict access to editing them

/**
 * Implements hook_field_access
 */
function MODULE_field_access($op, $field, $entity_type, $entity, $account) {
  // Define read only fields
  $readonly = array('field_my_field_1', 'field_my_field_2');
  if ($op == 'edit' &amp;&amp; in_array($field['field_name'], $readonly)) {
    // Disable edit.
    return FALSE;
  }
  return TRUE;
}