As others have said, you can fix this with code like this:
let arr = ["England","Scotland","Westeros"];
let dragonLands = arr.map(country => country + '...here be dragons');
console.log(dragonLands);
But also important is to understand why your code fails. The issue is that Strings are immutable. So this:
e += '...here be dragons'
does not change the value of e in your original array but instead returns a new String, which is immediately thrown away, since you don't assign it to something or return it.
It can be confusing because this looks fairly similar:
let arr = [
{name: "England", id: 1},
{name: "Scotland", id: 2},
{name: "Westeros", id: 3}
];
arr.forEach(country => country.name += '...here be dragons');
console.log(arr);
But there are important differences. First, map returns the result of applying the function to the elements. forEach, in contrast, is only important for side effects, in this case mutating the elements supplied to it.
Second, country => country.name += '...here there be dragons' does two things. It creates a new String as did your version, but then it assigns it back to country.name. Objects are not immutable.
map is an extremely useful construct, but when using it, it's essential to understand that it's the result of the function it invokes that's important.