Попробуйте установить класс img-liquid css для самого элемента img, а не для его родительского элемента.
<img class="img-fluid" src="<%= campground.image %>">
Вы ограничивали ширину родительского элемента изображения, а не ширину самого изображения.
<div class="row text-center" style="display:flex; flex-wrap:wrap;">
<% campgrounds.forEach(function(campground){ %>
<div class="col-md-3">
<div class="img-thumbnail">
<img class="img-fluid" src="<%= campground.image %>">
<div class="caption">
<h4><%= campground.name %></h4>
</div>
</div>
</div>
<% }) %>
</div>
Вот пример CodePen: https://codepen.io/anon/pen/QoPNdb
В качестве альтернативы, вы можете установить широкий стиль CSS, как этот, если вы просто хотите ограничить все изображения в сетках начальной загрузки, чтобы они помещались в их контейнеры.
.container > .row img,
.container-fluid > .row img { max-width: 100%; }