It's not just bugs and slowness. At least in those days, Pascal had the size of an array as part of the type of the array. This meant that you could not have a variable-sized array, because you could not give it a type.
True story: I took over a numerical simulation on a 2D grid that ran slowly, because it implemented the 2D grid as a linked list. If you wanted to refer to the node directly below the current one, and the grid was 60x60, you had to follow 60 links to do it! I looked down on the guy who wrote it as being somehow hung up on linked lists, like it was his favorite data structure from school or something. Only later did I find out that he had no choice - he couldn't allocate a variable-sized array. So we re-wrote it to allocate the biggest array we had memory to hold, and to only use part of it.
But if we were trying to write a portable operating system, or something of that sort, our kludge would not have worked. Allocating the biggest possible size needed is not good behavior for an OS...