Is it possible to define a field as disabled on creation in field_create_instance? I have a content type that has a mix of user-editable fields and auto-populated fields (from an external source). I would like to mark those fields as disabled right when I create them so the user cannot overwrite them. I know there are readonly modules and ways to do this in hook_form_alter but I'm curious if I can short circuit having to do this on the fly and just have it disabled by default. Thanks.
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;
}