How to programmatically delete a display from a view?
DisplayPluginCollection has a remove() method:

$view-&gt;displayHandlers-&gt;remove($display_id);


But this doesn't work and I couldn't find any code which is trying to actually remove the display from configuration.

So you would have to do this yourself in the view entity (storage):

$view = \Drupal\views\Views::getView('myview');
$storage = $view-&gt;storage;
$displays = $storage-&gt;get('display');
unset($displays[$display_id]);
$storage-&gt;set('display', $displays);
$storage-&gt;save();


The problem is this will not run the remove code of the display. For a block display this doesn't matter, but if you delete a page display you might consider running the remove method mentioned above before deleting the display from storage. This will delete the menu links from the page.