LDR's and LEDs probably won't be fast enough to sense a ball going by them. Opto switches based on phototransistor/photodiode are much more effective. Or just use pinball rollover switches (depends on how how much of the hardware is "pre-made" for you....)
The display on the scoreboard for each "lane" need not be separate. I'd just use one string of neopixels for the whole thing. Specifically, my first attempt would be to get one of those strings of 50 WS2811 pixels (the ones that look kinda like strings of christmas lights), using the appropriate number of LEDs for each lane. Unlike the "strip", you can move the bulbs around to position them the way you want (it's unclear to me whether you have an existing score-board for a derby game - if you do, you could tuck these lights where the old bulbs went)....
Espruino should be able to handle a large number of players, and probably a bit more naturally than an Arduino would. Both of them would be effective for your task though.
Arduino vs Espruino:
Espruino has faster developent time (JS is easier to write than C, especially in terms of writing sane, readable code that makes sense), especially if you're interfacing with the web, where the painful parts of C become more prominent. The fact that you get a js console that you can execute code on "live" during development is indescribably useful.
On Arduino, "String" is the devil - strings that you can easily concatenate with + exist, but the usage patterns they lead to result in weird memory problems; the alternative is c-strings (null terminated character arrays), and operations on them are, shall we say, less than intuitive - on Espruino, strings are a great data type and are work the way you expect them to without caveats.
Espruino code execution is slow - even though the processor is several times faster than an arduino, the overhead of the interpreter often makes it slower (though it's worth noting that where you can send the Espruino a bunch of data to work on at once, it's fast).
Arduino is cheaper. Code execution is very fast. RAM is very limited, and you need to think much more carefully about how you use resources. C doesn't have a native data type like js objects, and it really hurts if you're coming from a modern language where you're used to that.
My rule of thumb is that if if i'm interacting with the internet (including calls to webservers on a local network), or if the application is difficult to realize without dynamically sized arrays use Espruino. If I'm working at a low level, or have very tightly timing critical things, if the task is very well defined, predictable, and amenable to fixed size arrays, use Arduino.
Many of my larger projects have both of them - for example, I have an Arduino sketch that sends and receives data using those el-cheapo 433mhz transmitter/receivers, and interfaces via serial, and have that talk to an Espruino to act as a Serial <-> RF gateway. In a current project I also have an Arduino (well, arduino-programmed attiny4313) converting serial to the curious parallel interface used for the futaba VFD I'm using - but those serial commands are sent by the Espruino, which provides the web interface, the menu, and all that jazz.