I'm making a simple online RPG for Android & IOS using HTML5 & Phonegap and was wondering: should I include sprite file with the game for downloads (because of bandwidth)? What should I do when I modify the sprite file in the future? (i.e. forced update).
Short Answer: Of course; just include all your assets. Make sure you use proper texture compression and a good file format for your needs and file sizes shouldn't be a problem for a low scale RPG.
Distribute your app as just a wrapper around your HTML5 game and make life a bit easier that way. You can have your HTTP server and the browser handle the sprite caching, the browser will download new assets for you as required. If there's a major update, you can always order a cache purge to have all users up to date. This way, the updates will be near instant and you won't have to worry about shipping out huge updates.
On startup, it may be a good idea to preload content and tell the user roughly how much data is needed. This prevents confusion and angry players - it has the added bonus of a smoother game experience when completed, too.
The user will have to download the sprite at some point in order to see it on their device. Whether it's at the initial download or later is a design consideration.
I recommend you use a combination of both. Package the sprite with your game and also have the game check your server to see if there is a newer version of the sprite. Only download from your server if there is a newer version.