As a Japanese person myself, I'll admit that there are a lot of cultural factors that make countries like Japan less competitive in the software industry.
One problem is that most Japanese companies devote significantly more resources to marketing than a typical US company would. Anything that doesn't produce immediate value gets shot down by managers, especially nowadays with the "kaizen philosophy" of the 70s and 80s being replaced with a new buzzword, "keihi sakugen", or cost-cutting. Intangible projects like middleware and libraries are particularly scarce and vulnerable to being slashed by myopic managers.
A lot of the impressive research, for instance in the fields of computer vision and robotics, tends not to get anywhere because they create extremely elaborate proof-of-concept projects that take up all their time and serve no purpose other than to impress laypeople watching TV. Take Honda's violin-playing robot, for instance, which undoubtedly proves a smaller point than IBM's Jeopardy algorithm, despite taking much longer to build.
(Edit 3: As if to prove my point, Japan is sending a Twittering, talking, emoting humanoid robot into space to talk to the Space Station crew. The EU or US would be just as happy with a text-to-speech RSS/Twitter feed reader with maybe :) and :( screen icons to indicate emotion and >:| to indicate a robot apocalypse.)
They also don't seem to embrace the concept of code reuse; unless it's a packaged platform, most Japanese programmers I've seen tend to reinvent the wheel quite often. Given proprietary software and a reusable alternative, they'll usually take the proprietary option. They also aren't very keen on standards or open protocols. Take Sony in the 1990s for instance, before Howard Stringer took over.
Japanese companies are also stingy about intellectual property, which you'll notice if you've ever tried to find Japanese music on YouTube -- rather than opting for ad income, most Japanese publishers just disable the offending video. Heck, when I was 14, I reinvented bucket sort thinking I'd stumbled upon something new, and my parents got completely upset with me when I insisted that patenting sorting algorithms isn't a good idea.
This attitude is completely ingrained in Japanese culture. Many, if not most, will go so far as to censor the names of other products or other people, even when there's nothing negative being said, and even though there's no law that necessitates this.
The language barrier is also an issue. Most Japanese people speak a tiny bit of broken Engrish, but most of the programming community's content is in rather difficult English -- so naturally they have less information to keep up to date with or to make good entrepreneurial decisions with. The English education in Japan is notoriously ineffective, with constant calls for reform generally leading to even worse curricula.
Edit 1: Forgot to mention, the Japanese value seniority, so most people of authority are in their 50s, 60s, even 70s -- and most of them hardly know how to use a mouse.
One positive thing I have to say though is that in a sense most Japanese products are very user-centric, so Japanese UIs, aside from being horribly non-standard, are quite intuitive and usable. Nintendo's work is a good example of this, though even most freeware tends to be quite good in this regard.
Edit 2: In general, the Japanese have no faith in software. They'd rather have more hardware than more software. Given a choice between buying an iPhone or buying a generic phone and an iPod, they'll usually choose the latter, even if it takes more pocket space and costs a lot more. In a typical Japanese home you might find a fax machine, a printer, a scanner, a few game consoles, a Blu-Ray player atop their PS3, one or two HDTVs, one phone per person, and a lonely laptop collecting dust. As a result, most of my Japanese friends in their 20s and 30s are as computer illiterate as the North Americans or Koreans of my parents' generation.