It's a tradeoff. The cost of having an explicit "end" is a few extra characters that you have to type, and an extra line of code at the end of each block. On the other hand, the benefits include less error-prone cut-and-paste (as Stefan mentioned), the possibility of automated reformatting of code (e.g. think emacs indent-region or gofmt), and flexibility in writing one-liners (e.g. "try foo() end").
I think the metaprogramming facilities in Julia also favor the choice of explicit block delimiters. In Julia, code can also be a symbolic expression, simply by surrounding it with :(....) or quote ... end, and whitespace sensitivity within symbolic expressions seems like it would get annoying quickly
Probably this should be in the Julia FAQ or Manual, since our inexplicable rejection of the holy whitespace seems to be the first thing that every Python programmer asks about. (If you hate typing extraneous characters, the colons in Python must drive you bonkers.)
(People who like maximum terseness in a practical programming language should take a look at J. The
J examples on RosettaCode are pretty amazing.)