Set image as permanent in custom block plugin, temporary URI
To set the correct file scheme is necessary to define the upload location in the form array.

I've amended the form as follows:

public function blockForm($form, FormStateInterface $form_state) {
  $form['upload_image'] = [
    '#type' =&gt; 'managed_file',
    '#title' =&gt; $this-&gt;t('Upload Image'),
    '#default_value' =&gt; $this-&gt;configuration['upload_image'],
    '#upload_location =&gt; 'public://blocks',
    ];

  return $form;
}


The URI and URL are now as expected and the file is permanently saved.