Because their creators were guided by the syntax of C or its derivatives (C++, Java, etc.).
So what? New programming languages weren’t designed to be syntactically compatible with C, but rather so that their syntax would be sufficiently good, readable, and understandable. And in the case of arrays, a syntax similar to that of C was used, not because of thoughtless copying of ideas from C, but because it is simply good—for most programmers, though apparently not for Pascal programmers.
And how can one recognize sufficiently good, readable, and understandable syntax? This is a rather subjective matter. What is good/correct/readable/understandable for one person will be either verbose, overly condensed, or even unreadable for another. Slightly longer syntax is usually more readable, although some people may perceive it as verbose. It's always a compromise.
However, you should not overdo it with shortening the notation. A good example of poor syntax design is C and its descendant, C++. In the pursuit of "typing code faster," the syntax of these languages has been oversimplified to the point of absurdity. The real reason for this simplification, however, is not the mythical desire to "enter code faster", but rather the hardware limitations of the computers (they were quite primitive) on which their creators worked (i.e. B, BCPL, C). However, not everyone assumed that progress in computer development would be so slow that every typed character had to be conserved. This was simple "computer avarice" combined with a naive belief in the slow development of computers, not any foresight on the part of the designers of B, BCPL, and C. However, some people love to believe in nonsense myths.
Furthermore, the range-based syntax still allows you to easily determine the number of array elements.
So? Has anyone suggested removing the ability to specify indices? No, no one has suggested that. The proposal is to extend the syntax for declaring arrays so that you can specify the number of elements and use default indexing starting from 0.
And who will guarantee that this syntax will not be abused?
However, the above proposal, with empty (or partially empty) square brackets, can be confused with code in which someone forgot to specify a size or index. The compiler won't be able to distinguish this, and consequently won't be able to report incomplete (and therefore incorrect) syntax. After compilation, this may result in incorrect program operation and the need for time-consuming error searching.
Nonsense. If a programmer forgets to specify the size of an array or its indices, that array will be empty (automatically initialized to nil), and the first attempt to access it will cause a runtime error, so there’s nothing to look for. On the other hand, if a programmer has memory issues, no syntax—not even the most verbose one—will help. Arguments like "no, because someone might forget" aren’t valid arguments.
But it is a completely human trait to forget something, to make a mistake. For various reasons. Most often, it's probably due to fatigue. You don't consider that syntax can be more or less error-prone. Furthermore, incomplete syntax is incorrect, because what else is the compiler supposed to do—add the missing fragment itself? Moreover, the most desirable situation is when it is possible to detect an error in the code at the compilation stage (which, as we know, is not always possible). A runtime error is more severe, and it's not so bad when it's repeatable. It's worse when it only occurs in certain specific situations. However, there is not always a guarantee that an error made in the code will be repeated. So, a slightly more verbose syntax is more profitable, because it saves time that would otherwise be spent debugging and fixing some errors. And the larger the program, the greater the likelihood of errors. Therefore, it's good to reduce the likelihood of making at least some of them.
The current declaration of dynamic arrays in Pascal is much more readable and incomparably less error-prone.
"It is not known how many users there are of particular syntaxes and what cases they need. There is no information about anyone conducting any research or surveys on this subject." So in short — "No, it's just your subjective opinion that the current Pascal array declaration syntax is not too long. Not everyone agrees."
This may be a subjective opinion, but it's certainly not just mine. The comments on this forum prove that there are many people who prefer the more readable syntax. I'd venture to say that most people probably prefer the more readable Pascal syntax.
Another error-prone suggestion. It's illegible.
"Just your subjective opinion, not everyone agrees."
Well, the comments show otherwise. Despite the subjectivity of "my opinion"

After all, C already exists, has a lot of libraries and quite efficient compilers. So just use it instead of trying to force Pascal to resemble C.
After all, original Free Pascal already and still exists, has verbose syntax and is less C-like. So use it instead of criticizing the development of a language fork that had features from C and other languages implemented long before I stumbled upon this thread and this project.
And after many years, some of them believe this wasn't a good idea (I'm referring to the discussions over the last few years). Support for certain C constructs (e.g., unions or bit fields) is desirable in Pascal for systemic reasons (e.g., their absence in Pascal), not because it's a good idea. However, the alternative C-style syntax to the existing Pascal syntax is: (a) unnecessary duplication and less readable, (b) more error-prone, and (c) unnecessary complexity for the compiler code.