HyperCard suffered from a few obvious problems for larger-scale programming. First, it lacked any support for meaningful code structure and re-use. You didn't so much have functions or procedures so much as you had GOTO statements pointing between cards. For simple logic, that may be fine, but for more complicated workflow, the 1:1 mapping between cards and code blocks, and lack of shared state between them, means that non-trivial apps quickly became a mess of HyperTalk and hackish extensions written in C.
Also, it was tightly tied to a number of MacOS platform technologies; at a minimum, building a full clone of HyperCard would have required re-implementing some analogue to QuickDraw, including (IIRC) some undocumented hooks that the engineers at Apple used into the underlying system.
In the end, though, what probably killed HyperCard more than anything else was the rise of the web browser. Many of the basic operations of a HyperCard stack -- linking between discrete pages of data, providing simple interactive widgets and multimedia, and supporting complex layout of text and images -- are extremely well-supported by graphical web browsers, and the fact that resources are stored on the network mean that you don't have to pass around stacks on disk like you did in the HyperCard days.
That being said, there have been periodic efforts to fill the same niche, without continuing to enforce the more baroque limitations that HyperCard had. PythonCard was a very interesting project, but seems to be pretty much dead at this point.
The [Shoes](http://code.whytheluckystiff.net/shoes/) project seems to be a good bit more active at this point. It's still at a pretty early stage in terms of API stability, but _why is one of the more tenacious programmers out there, and the community that has already sprung up around it is impressive.
Unfortunately it doesn't appear to be updated recently.
I think 2 reasons:
1) There are generally fewer open source projects with truly user friendly interfaces (cause its a lot of grinding work). 2) Hypercard made pseudo-programming easier for non programmers. Something that the type of people who tend to work on open source don't always agree with. Heck, if you don't workin in language XYZ, you are vile scum worthy of death, for XYZ <= blub.
Basically, the folks who could write HyperCard aren't the folks who use HyperCard, and when there's no money involved, people will write software that they themselves want to use.