This solution combines and builds on David Paul's and MDP's solutions and removes the <div class="views-row ...">
in a consistent way for all views that are properly configured without additional modules.
Drupal 7 & 8+
Step 1:
Disable all class configurations in the Style options of the view's Format section.
You must do this for any and all views that you want to remove the wrapper from:
Drupal 7
Step 2: Copy views-view-unformatted.tpl.php
from the Views module into your theme's templates
folder and modify the logic to ignore the div when classes are empty.
Change the following lines from:
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>>
<?php print $row; ?>
</div>
to:
<?php if ($classes_array[$id]) : ?><div class="<?php print $classes_array[$id]; ?>"><?php endif; ?>
<?php print $row; ?>
<?php if ($classes_array[$id]) : ?></div><?php endif; ?>
Drupal 8+
Step 2: Copy views-view-unformatted.html.twig
from the Views module into your theme's templates/views/
folder and modify the logic to ignore the div when {{row.attributes}} are empty.
Change the following lines from:
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
to:
{% if default_row_class or row.attributes is not empty %}
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
{% else %}
{{ row.content }}
{% endif %}
Honestly, I'm not sure why the Views module doesn't do this itself... its a total WTF and could be a nice improvement for Themer's eXperience.