Why do dynamic languages lack the ability to define private members in classes? Is there any implementation concern on this feature? Is it possible for this feature to be implemented for a dynamic language?
This can be implemented for dynamic languages. Indeed, in Smalltalk, all members are always private.
The reason why this is not common is that there is no point in having both public and private members. External code should not access the internals of other classes as a matter of design. This can be achieved by just not doing that - it is not easy to do that accidentally.
Python solves this by having everything be public, and allowing programmers to do this if necessary, which creates maximum flexibility. Smalltalk solves this by having everything be private, and forcing programmers to create accessors if access from other code is desired.
As to implementation concerns, access checks are relatively expensive (in that for at least some attribute accesses, there will be extra operations, and the more subtle the rules, the more complex the checks), so the all private and all public models are much more attractive than anything with intermediate access levels.