Alter webform select option values
For select fields to accept a default value, this value must be part of the #options list.

So you have to add the option before you can set the default value (important is the array key):

$form['submitted']['destinataire']['#options'][$email_dest] = $email_dest;
$form['submitted']['destinataire']['#default_value'] = $email_dest;


Then to hide the form element you can do:

$form['submitted']['destinataire']['#access'] = FALSE;


Or to keep it visible but disabled:

$form['submitted']['destinataire']['#attributes']['disabled'] = 'disabled';


But in any case, the submitted value for select elements must be part of the options list, otherwise it won't be accepted as a valid submission value. This is one of the many ways that Drupal tries to prevent malicious form manipulation.

For the difference between #value and #default_value: if #value is set, then it doesn't matter if a user chooses a different value for the form element. The finally submitted value that arrives in the submit handler will be the value set with #value. It's hardwired so to speak. #default_value on the other hand is more like a suggestion, it is changeable by the user and whatever is chosen will also arrive at the submit handler.